5 Haziran 2017 Pazartesi

OPENCV DERSLERİ (DERS:15) RESİM GRADIENT-KENAR BULMA

OpenCV kütüphanesi üç tür Image Gradients(yüksek geçiren filtre) sunar.Bunlar;


        1. SOBEL
        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()

   ⤷Sonuç:

Ders:14⬅                                                            Ders:16

0 yorum:

Yorum Gönder