python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
تک آستانه، دو سطحی
اینجا پیکسلهای سفید پس زمینه و سیاه، شی یا پیش زمینه را نشان میدهند.
تصویر که دارای بیش از یک آستانه برای آستانه گذاری چند سطحی میباشد.
آستانه گیری چند سطحی با دو آستانه
python_developer
آستانه گیری چند سطحی با دو آستانه
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('photo_2017-10-07_16-19-40.jpg',0)
ret1,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
ret2,th2 = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
blur = cv2.GaussianBlur(img,(5,5),0)
ret3,th3 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
images = [img, 0, th1,
img, 0, th2,
blur, 0, th3]
titles = ['Original Noisy Image','Histogram','Global Thresholding (v=127)',
'Original Noisy Image','Histogram',"Otsu's Thresholding",
'Gaussian filtered Image','Histogram',"Otsu's Thresholding"]
for i in xrange(3):
plt.subplot(3,3,i*3+1),plt.imshow(images[i*3],'gray')
plt.title(titles[i*3]), plt.xticks([]), plt.yticks([])
plt.subplot(3,3,i*3+2),plt.hist(images[i*3].ravel(),256)
plt.title(titles[i*3+1]), plt.xticks([]), plt.yticks([])
plt.subplot(3,3,i*3+3),plt.imshow(images[i*3+2],'gray')
plt.title(titles[i*3+2]), plt.xticks([]), plt.yticks([])
plt.show
python_developer
روش Simple Thresholding در عکسهای رنگی جالب نیست و خروجی آن شبیه تصویر میباشد .
عکس هایی که دارای روشنایی متفاوت در قسمتهای مختلف میباشند خروجی جالبی ندارند.(به اشتباه رنگی نوشتم)
This media is not supported in your browser
VIEW IN TELEGRAM
💢Concept of#Blurring
مفهوم #مات کردن Blurring
در مات کردن یک تصویر ساده تار و مات میشود.
فیلتر های دیجیتال برای مات کردن، لبه دار یا تیز کردن تصاویر دیجیتالی به کار میروند. تیز کردن یعنی جداسازی بین رنگها مشخص شود.
تصویر پیشنهادی برای این بخش
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('face.png')

kernel = np.ones((5,5),np.float32)/25
dst = cv2.filter2D(img,-1,kernel)

plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]), plt.yticks([])
plt.show()
python_developer
Photo
💢 #Smoothing_Images
اهداف این بخش:
◀️ مات کردن تصاویر با استفاده از فیلتر های پایین گذر مختلف
◀️ اعمال فیلتر های سفارشی به تصاویر (2D convolution)
💢2D Convolution ( Image Filtering )
همانند سیگنالهای تک بعدی، تصاویر(سگنالهای دو بعدی) را هم میتوان با استفاده از فیلترهای پایین گذر(LPF)، بالا گذر (HPF)و ... فیلتر کرد.

⬅️ یک LPF در برطرف کردن نویز یا تارشدن تصویر کمک می کند.

⬅️ یک HPF در پیدا کردن لبه ها در یک تصویر کمک می کند.

⬅️ کتابخانه OpenCV با استفاده از تابع cv2.filter2D()، پیچش یک هسته با یک تصویر را فراهم میکند.
👏 به عنوان مثال ، یک فیلتر حد وسط بر روی یک تصویر اعمال میکنیم. هسته فیلتر حد وسط 5x5 به صورت شکل تعریف میشود:
فروش پکیج اموزش پایتون با تخفیف ویژه پیغام دهید. کانال اموزش پایتون @Real_developer
python_developer
💢2D Convolution ( Image Filtering ) همانند سیگنالهای تک بعدی، تصاویر(سگنالهای دو بعدی) را هم میتوان با استفاده از فیلترهای پایین گذر(LPF)، بالا گذر (HPF)و ... فیلتر کرد. ⬅️ یک LPF در برطرف کردن نویز یا تارشدن تصویر کمک می کند. ⬅️ یک HPF در پیدا کردن…
⬅️ دوستان در این مطلب اگر دقت کنید #کانولوشن را #پیچش معنی کردم . در واقع در دیکشنری و بسیاری از مقاله های فارسی هم به همین واژه معنی شده بود.
خوب با این معنا من نمی تونستم کاربرد واضحی از کانولوشن را بفهمم .
با جستجوی زیاد متوجه شدم کانولوشن را باید 💢#پیمایش💢 تعربف میکردم.
خوب حالا میخواهیم ببینیم کار کانولوشن یا پیمایش در OpenCv چی هست و برای چی استفاده میشود .

🤔کونولوشن همراه است با ایجاد یک ماتریس به عنوان کرنل یا هسته یا ماسک یا فیلتر ، و پیمایش یا گام برداشتن بر روی تک تک عناصر تصویر ورودی . برای هر گام عناصر مربوطه در هر دو ماتریس را ضرب میکنیم سپس آنها را جمع کرده تا یک عنصر جدید بدست آوریم. این کار آنقدر میشود تا این ماتریس کوچک به عنوان ماسک ، تمام عناصر موجود در ماتریس ورودی یا تصویر را مرور کند. عناصرموجود درماتریس جدید حاصل کانولوشن است.