fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

python_developer

python_developer

رفتن به کانال در Telegram

کانال اموزش پایتون @Real_developer تبلیغات پذیرفته میشود.

نمایش بیشتر
1 519
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-37 روز
-430 روز
آرشیو پست ها
✅💢روش آستانه گذاری Otsu ، تصویر را به گونه ای تقسیم بندی میکند که تصویر با بهترین مقدار آستانه به دو کلاس سیاه و سفید یا پیش زمینه و پس زمینه یا پس زمینه و شی تقسیم میشود:

https://commons.wikimedia.org/wiki/File:BhaProgress3.gif?uselang=fa#/media/File:BhaProgress3.gif 💢✅آستانه‌گذاری یکی از مناسب‌ترین روش‌ها برای بخش‌بندی تصویر می‌باشد. با اعمال یک روش آستانه‌گذاری بر روی یک تصویر مقیاس خاکستری، تصویری باینری بدست می‌آید که مرز اشیاء حاضر در تصویر با دقت مناسبی مشخص می‌گردد. با استفاده از بخشبندی تصویر، مثلا تعداد مربع یا مستطیل را در تصویر میتوانیم بشماریم. یا تشخیص چهره و اثر انگشت و ... در این قسمت از کاربرد پردازش تصویر میگنجد.

💢💢قبل از ادامه بحث Otsu مطالب زیر را مرور کنید:

AnimatedSticker.tgs0.35 KB

3️⃣1️⃣The bimodal images ✅در روش Otsu’s Binarization ما از تصاویر bimodal استفاده میکنیم . تصاویر دو بعدی هستند که هیستگرام آنها دارای دو قله است.

3️⃣Otsu’s Binarization ➖➖➖➖➖➖➖➖➖➖ ✅در این روش قرار است از خروجی دوم روش آستانه گیری ساده، retVal استفاده کنیم. چرا ما از این روش استفاده میکنیم؟🤔؟ در آستانه گیری ساده ما از یک مقدار سراری استفاده کردیم. ولی از کجا بدونیم این مقدار، یک مقدار خوب و بهینه است؟ با آزمون و خطا.

♦️تفاوت آستانه ساده با تطبیقی در این تصویر مشهود است♦️

photo content

✅در روش تطبیقی ما سه ورودی و یک خروجی خواهیم داشت: import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('sample.jpg',0) img = cv2.medianBlur(img,5) ret,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2) th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2) titles = ['Original Image', 'Global Thresholding (v = 127)','Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding'] images = [img, th1, th2, th3] for i in xrange(4): plt.subplot(2,2,i+1),plt.imshow(images[i],'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show()

2️⃣Adaptive Thresholding ➖➖➖➖➖➖➖➖➖➖ ✅در آستانه تطبیقی ، مانند آستانه ساده از مقدار سراری برای آستانه استفاده نمیشود. چون عکس هایی که دارای روشنایی متفاوت در قسمتهای مختلف میباشند خروجی جالبی ندارند. بنابراین در این روش ، آستانه برای یک قسمت کوچکی از تصویر حساب میشود وبا این مقادیر ، به نتایج بهتری در تصاویر با نورهای متفاوت میرسیم.

✅✅برای #داده_کاوی ما نیاز به حجم زیادی داده داریم که این داده ها، #big_data نامیده میشود. از ویژگیهای مهم #big_data :👇👇 1) ارزشمند بودن داده ها 2)متنوع بودن داده ها 3)حجیم بودن داده ها 4)داده ها به سرعت در حال تغییر و تولید هستند 5)داده ها به درد بخور و صحیح هستند

AnimatedSticker.tgs0.35 KB

import cv2 import numpy as np img = cv2.imread('sample.jpg') ret,threshold1 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV) cv2.imshow('threshold ',threshold1) cv2.waitKey (0) cv2.destroyAllWindows ()

روش Simple Thresholding در عکسهای رنگی جالب نیست و خروجی آن شبیه تصویر میباشد .
روش Simple Thresholding در عکسهای رنگی جالب نیست و خروجی آن شبیه تصویر میباشد .

همانطور که در کد مشخص شده ما دو خروجی داریم:retval,threshold ولی در Simple Thresholding فقط از threshold استفاده میشود.

photo content

import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('8.jpg',0) ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) ret,thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC) ret,thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO) ret,thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV) titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV'] images = [img, thresh1, thresh2, thresh3, thresh4, thresh5] for i in xrange(6): plt.subplot(2,3,i+1),plt.imshow(images[i],'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show()

درک این موضوع با یک تصویر دیگر
درک این موضوع با یک تصویر دیگر

AnimatedSticker.tgs0.33 KB