python_developer
Kanalga Telegram’da o‘tish
کانال اموزش پایتون @Real_developer تبلیغات پذیرفته میشود.
Ko'proq ko'rsatish1 519
Obunachilar
Ma'lumot yo'q24 soatlar
-37 kun
-430 kun
Postlar arxiv
1 519
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('blackandwhite.jpg',0)
laplacian64 = cv2.Laplacian(img, cv2.CV_64F)
sobelx64 = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)
sobely64 = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)
laplacian = np.uint8(np.absolute(laplacian64))
sobelx = np.uint8(np.absolute(sobelx64))
sobely = np.uint8(np.absolute(sobely64))
plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')
plt.title('Sobel X'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')
plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])
plt.show()
💢
1 519
✅در واقع، هنگام تبدیل داده ها، مشکلی پیش آمده است. شیب ها در مقیاس خاکستری با مقادیر cv2.CV_64F، هنگام تغییر از سیاه به سفید با ارزش های مثبت (شیب مثبت) بیان شده است.
در حالی که آنها با مقادیر منفی (شیب منفی) هنگام تغییر از سفید به سیاه نشان داده می شوند.
در تبدیل از cv2.CV_64F به cv2.CV_8U، تمام دامنه های منفی به 0 کاهش می یابد، و سپس اطلاعات مربوط به آن لبه ها از بین می روند. هنگامی که برنامه تصویر را نشان می دهد، لبه های سفید تا سیاه نمایش داده نخواهد شد.
✅ برای رفع این مشکل، باید داده ها را در خروجی فیلتر در cv2.CV_64F (به جای cv2.CV_8U) نگه دارید،سپس مقدار قطعی را محاسبه کنید و در نهایت تبدیل به cv2.CV_8U را انجام دهید.
💢💢💢💢💢
1 519
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('dave.jpg',0)
laplacian = cv2.Laplacian(img,cv2.CV_64F)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)
plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')
plt.title('Sobel X'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')
plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])
plt.show()
💢💢💢💢💢💢💢💢
1 519
💢2. Laplacian Derivatives💢
فیلتر لاپلاسین، از رابطه زیر استفاده میکند:
جایی که هر مشتق، با استفاده از مشتقات سوبل پیدا می شود.
💢💢💢💢💢💢
1 519
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('blackandwhite.jpg',0)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)
plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')
plt.title('Sobel X'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')
plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])
plt.show()
💢💢
1 519
✅cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) → dst
اگر ksize را -1 قرار دهیم، به آن فیلتر #شار 3x3 گویند که از فیلتر #سوبل 3x3 نتیجه بهتری دارد.
💢💢💢💢💢
1 519
تغییرات عمودی:
تصویر I، توسط convolving با هسته Gy و سایز فرد، محاسبه میشود.
💢💢💢💢💢
1 519
✅اگر I تصویر ما باشد، دو مشتق را محاسبه می کنیم:
تغییرات افقی:
تصویر I، توسط convolving با هسته Gx و سایز فرد، محاسبه میشود.
💢💢💢💢
1 519
💢1. Sobel and Scharr Derivatives💢
میدانیم تصویر یک سیگنال دو بعدی است.
در راستای x,y.
اگر بخواهیم لبه را در راستای x یا y بدست آوریم، از این فیلتر استفاده میکنیم.
💢💢💢💢💢
