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 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 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 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 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()
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()
This media is not supported in your browser
VIEW IN TELEGRAM
✅فیلتر کردن تصویر در حوزه های مکانی و فرکانسی
فیلترهای مکانی: مربوط به استفاده مستقیم از پیکسلهای تصویر میباشد. هر پیکسل:
پیکسل =مولفه نور یا روشنایی+ قابلیت بازتاب
ولی در فیلتر های مکانی امکان تفکیک این دو مولفه نیس.
فیلتر های مکانی خطی و غیر خطی داریم. فرق این دو : در خطی تمام پیکسل های همسایه درگیر کرنل هستن ولی در غیر خطی اینطور نیس.
فرآیند convolution مستلزم استفاده از ماسک کانولوشن H (معمولا با شکل متقارن و اندازه 𝑤 × 𝑤، w = 2k + 1) است که بر روی تصویر منبع اعمال می شود
با توجه به شکل زیر.
فیلترهای مکانی: مربوط به استفاده مستقیم از پیکسلهای تصویر میباشد. هر پیکسل:
پیکسل =مولفه نور یا روشنایی+ قابلیت بازتاب
ولی در فیلتر های مکانی امکان تفکیک این دو مولفه نیس.
فیلتر های مکانی خطی و غیر خطی داریم. فرق این دو : در خطی تمام پیکسل های همسایه درگیر کرنل هستن ولی در غیر خطی اینطور نیس.
فرآیند convolution مستلزم استفاده از ماسک کانولوشن H (معمولا با شکل متقارن و اندازه 𝑤 × 𝑤، w = 2k + 1) است که بر روی تصویر منبع اعمال می شود
با توجه به شکل زیر.
IMG_20211201_112709_516.jpg
4.5 KB
The convolution process in the spatial domain
این بدان معنی است که اسکن تصویر منبع IS، پیکسل به پیکسل، نادیده گرفتن ردیف ها و ستون های اول و آخر k و محاسبه مقدار شدت روشنایی در موقعیت فعلی ID تصویر مقصد با استفاده از تصویر بالا میباشد.
هسته کانولوشن می تواند شکل های غیر متقارن (عنصر مرکزی / مرجع در مرکز تقارن قرار نداشته باشد).کانولوشن با چنین هسته به روش مشابهی اعمال می شود.