python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
💢2D Convolution ( Image Filtering )
فیلتر کردن تصاویر در حوزه فرکانس و مکان
💠برای روشن شدن این تفاوت در دو حوزه از عملگر کانولوشن استفاده میشود.

◀️ماسک یا هسته برای تار شدن، تیز کردن، منبت کردن، تشخیص لبه و غیره استفاده می شود. این کار با انجام یک کانولوشن بین یک هسته و یک تصویر انجام می شود.

◀️همانند سیگنالهای یک بعدی، تصاویر نیز می توانند با فیلترهای پایین گذر (LPF)، فیلترهای بالاگذر(HPF) و غیره فیلتر شوند. یک LPF در از بین بردن نویز و یا تار شدن تصویر کمک میکند. فیلتر HPF در پیدا کردن لبه ها در یک تصویرکمک می کند .OpenCV تابع، cv2.filter2D () را برای کونولوشن یک هسته با یک تصویر فراهم می کند.
◀️به عنوان مثال، یک فیلتر نرمال برای حذف نویز که پایین گذر هست ، هم در حوزه فرکانس و هم در حوزه مکان انجام میشود.
◀️کانولوشن در حوزه مکان همین نام را دارد ولی در حوزه فرکانس به ضرب تبدیل میشود.
تاری تصویر که توسط convolving تصویر با یک هسته فیلتر پایین گذر به دست می آید. برای حذف نویز مناسب است،
برای یافتن هسته مورد نظر و کاربرد آن به سایت زیر مراجعه کنید:
https://en.wikipedia.org/wiki/Kernel_(image_processing)
اپن سی وی عمدتا چهار نوع تکنیک های مات کردن را فراهم می کند:

1) Averaging
فیلتر نرمال یا میانگین توسط دو تابع cv2.blur() یا cv2.boxFilter() که بررسی میشود . 👇👇👇
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('kh.jpg')

blur = cv2.blur(img,(5,5))

plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
plt.xticks([]), plt.yticks([])
plt.show()
Averaging
2. Gaussian Filtering

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
GaussianBlur = cv2.GaussianBlur(img,(5,5),0)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(GaussianBlur),plt.title('GaussianBlur')
plt.xticks([]), plt.yticks([])
plt.show()
3. Median Filtering
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
median = cv2.medianBlur(img,5)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(median),plt.title('median')
plt.xticks([]), plt.yticks([])
plt.show()
4. Bilateral Filtering
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
bilateralFilter = cv2.bilateralFilter(img,9,75,75)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(bilateralFilter),plt.title('bilateralFilter')
plt.xticks([]), plt.yticks([])
plt.show()
This media is not supported in your browser
VIEW IN TELEGRAM
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
kernel_sharpening = np.array([[0,-1,0],
[-1, 5,-1],
[0,-1,0]])
sharpen = cv2.filter2D(img, -1, kernel_sharpening)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(sharpen),plt.title('Sharpen')
plt.xticks([]), plt.yticks([])
plt.show()
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
kernel_blur = np.array([[0.0625,0.125,0.0625],
[0.125, 0.25,0.125],
[0.0625,0.125,0.0625]])
blur = cv2.filter2D(img, -1, kernel_blur)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur ),plt.title('blur ')
plt.xticks([]), plt.yticks([])
plt.show()
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
bottom_sobel = np.array([[-1,-2,-1],
[0, 0,0],
[1,2,1]])
sobel = cv2.filter2D(img, -1, bottom_sobel)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(sobel ),plt.title('bottom sobel ')
plt.xticks([]), plt.yticks([])
plt.show()
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
emboss = np.array([[-2,-1,0],
[-1,1,1],
[0,1,2]])
embosss = cv2.filter2D(img, -1, emboss )
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(embosss ),plt.title('emboss ')
plt.xticks([]), plt.yticks([])
plt.show()
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
identity = np.array([[0,0,0],
[0,1,0],
[0,0,0]])
identityy = cv2.filter2D(img, -1, identity )
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(identityy ),plt.title('identity ')
plt.xticks([]), plt.yticks([])
plt.show()
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('kh.jpg')
left_sobel = np.array([[1,0,-1],
[2,0,-2],
[1,0,-1]])
left_sobell = cv2.filter2D(img, -1, left_sobel )
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(left_sobell ),plt.title('left_sobel')
plt.xticks([]), plt.yticks([])
plt.show()