Update: morfoloji-operasyonlari-morphology-operations
Open markdown file
Update
Edit Content
[Ana Link](https://www.geeksforgeeks.org/python/python-opencv-morphological-operations/) Aşındırma (Erosion) ve Genişletme (Dilation) olarak iki temel yöntem ve bunlara ek olarak MorphologyEx içerisinde farklı bayraklarla bu iki temel yöntemin matematiksel karışımları vardır. Bu işlemler bir kernel ile yapılır ve bu kernel np ile tanımlanabilir (genellikle np.ones()) veya cv2.getStructeredElement fonksiyonuyla yapılabilir [[CV2 Kernel Oluşturma (getStructeredElement)]] . !!! İkili görüntüler üzerinde yapılır. Yani genelde bir thresholing işleminden sonra gerçekleştirilir. Yöntem olarak konvolüsyon işleminde gibi kernel gezdirilir ve merkezdeki pikselin değerini hesaplamak için kernelin taradığı alanda hedef değerden bir tane olup olmadığına bakılır. Kernel genelde np.ones ile temsil edilse de buradaki 1'ler hesaplamaya dahil edilecek maskelemeyi işaret eder. Yani istenen duruma göre 0-1 ikili değerler içeren kerneller'de kullanılabilir. ```python img = cv2.imread(r"Downloads\test (2).png", 0) # Load grayscale image bin = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)[1] # Binarize k = np.ones((5, 5), np.uint8) # Define 5x5 kernel inv = cv2.bitwise_not(bin) ``` ### Erosion  ```python out = cv2.erode(inv, k, 1) ``` Aynı zamanda gürültü gidermek için de kullanılır. Prensip: Kernel Konvolüsyon işleminde olduğu gibi görüntü boyunca gezdirilir. Eğer kernel içerisinde bir 0 değeri varsa kernel pikseli (yani ortadaki) '0' kabul edilir yoksa 255 kabul edilir (ikili görüntüler için). Yani kernelle taranan alanda bir tane küçük olması o kernel pikselinin değerini küçük yapar. ### Dilation  ```python out = cv2.dilate(inv, k, 1) ``` Genellikle erozyondan sonra kullanılır. Erozyon gürültüyü giderir ama nesneleri de daraltır. Bu işlem sonrası gürültü kalmadıgı için sadece nesneler daha belirgin hale gelmiş olur. Prensip: Erozyonun tersine taranan kernel'de bir tane bile 255 değeri varsa o kernel pixel'i 255'e eşitlenir. Yani kernelin taradıgı alanda bir tane bile 255 olması onu 255'e ittirir. ### Opening   ```python opened = cv2.morphologyEx(bin, cv2.MORPH_OPEN, k) ``` ### Closing   ```python closed = cv2.morphologyEx(bin, cv2.MORPH_CLOSE, k) # Apply closing ``` ### Morphological Gradient   ```python out = cv2.morphologyEx(inv, cv2.MORPH_GRADIENT, k) ``` ### Top hat   ```python top = cv2.morphologyEx(bin, cv2.MORPH_TOPHAT, k) ``` ### Black hat   ```python bh = cv2.morphologyEx(inv, cv2.MORPH_BLACKHAT, k) ```
Save
Remove: morfoloji-operasyonlari-morphology-operations
Delete Note