Morphological Transformations

Kategori: Python / OpenCV , 06 Ekim 2019 , JanFranco


Erozyon yöntemi bir resmin sınırlarını küçültmek için kullanılır. Sınırdan kast ettiğimizi anlamak için alfabeden bir harf düşünelim. Örneğin L harfi. Siyah bir panel üzerinde beyaz kalın bir L harfi olsun. Biz bu resme erozyon uygularsak bu L harfi incelir. Amaç resimdeki gürültüleri temizlemektir. Uygulayalım:


img = cv2.imread("hel.jpg", 0)

kernel = np.ones((10,10), np.uint8)
erosion = cv2.erode(img, kernel, iterations=1)

cv2.imshow("img", erosion)
cv2.waitKey()
erode methodu parametre olarak resmimizi, kernel matrisi ve iterations değeri alır. Kernel matrisi bizim oluşturduğumuz birlerden oluşan bir matristir. Bu oluşturduğumuz matris resmi adeta tarar, resmin üzerinde gezinir ve küçültme işlemini gerçekleştirir. iterations değeri bu işlemin kaç kez tekrarlanacağıdır. Dilation işlemi ise bu işlemlerin tam tersidir. Bahsettiğimiz L harfini kalınlaştırır. Uygulayalım:


img = cv2.imread("hel.jpg", 0)

kernel = np.ones((10,10), np.uint8)
dilation = cv2.dilate(img,kernel,iterations = 1)

cv2.imshow("img", dilation)
cv2.waitKey()
Opening ve closing işlemleri resimdeki gürültüleri temizlemek için kullanılır. Mantığı anlatmak gerekirse, yine kalın ve beyaz bir L harfi düşünelim ve bu L harfi siyah bir panelin üstünde olsun. Eğer bu L harfinin etrafında gürültüler varsa (ki binary bir resimde bu gürültüler beyaz renkte olacaktır) opening işlemi ile L harfini önce kalınlaştırır sonra da inceltiriz ve böylece gürültüleri süpürmüş oluruz. Aynı mantıkla eğer gürültüler L harfinin içinde ise closing işlemi ile önce L harfini inceltiriz daha sonra kalınlaştırırız. Bu şekilde harfin içindeki gürültüler de yok olmuş olur. Opening yöntemini inceleyelim:


img = cv2.imread("hel.jpg", 0)

kernel = np.ones((10,10), np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

cv2.imshow("img", opening)
cv2.waitKey()
Closing yöntemini inceleyelim:


img = cv2.imread("hel.jpg", 0)

kernel = np.ones((10,10), np.uint8)
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

cv2.imshow("img", closing)
cv2.waitKey()


Sonraki Yazı: Detecting Edges
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın