OpenCV kütüphanesi üç tür Image Gradients(yüksek geçiren filtre) sunar.Bunlar;
1. SOBEL
2. SCHAAR
3. LAPLACIAN
2. SCHAAR
3. LAPLACIAN
1)SOBEL ve SCHAAR
Sobel yöntemi birinci dereceden türev denklemlerini temel alan gradient esaslı bir yöntemdir Görüntünün birinci türevlerini x ve y eksenleri için ayrı ayrı hesaplar.
Türevlerin yaklaşık değerlerini hesaplamak için görüntü ile konvolüsyona tabi tutulan iki ayrı "3x3"lük kernel matrisleri bulunur.Aşağıdaki resimler sırasıyla x ve y ekseninde konvolüsyon işlemine tabi tutulan iki kernel matrisini göstermektedir.
2)LAPLACIAN
Laplacian filterisi işlemi ile gerçekleşir. Bu işlem sobel operatörünün aksine bir tek kernel matrisi kullanır.
Laplacian algılamasında kernel matrisi aşağıdaki gibidir.
Cv2.Laplacian (src, ddepth, other_options ...)
⤷ Burada ddepth hedef görüntünün istenilen derinliğidir.🔶Her iki işlevide tek bir örnekte incelemek istersek;
⤷Görüntü:
⤷Kod:
import cv2
import numpy as np
from matplotlib import pyplot as plt
# loading image
img0 = cv2.imread('windows.jpg',)
# Gri Skala
gray = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY)
# Gürültü kaldırma
img = cv2.GaussianBlur(gray,(3,3),0)
# laplace sobel islemleri
laplacian = cv2.Laplacian(img,cv2.CV_64F)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # x
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) # y
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()
import numpy as np
from matplotlib import pyplot as plt
# loading image
img0 = cv2.imread('windows.jpg',)
# Gri Skala
gray = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY)
# Gürültü kaldırma
img = cv2.GaussianBlur(gray,(3,3),0)
# laplace sobel islemleri
laplacian = cv2.Laplacian(img,cv2.CV_64F)
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) # x
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) # y
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()
⤷Sonuç:
0 yorum:
Yorum Gönder