Morfolojik İşlemler
Bazen, görüntünüzü eşledikten sonra, ikili görüntünüzde istenmeyen parazit olur. Morfolojik işlemler bu gürültüyü görüntüden çıkarmaya yardımcı olabilir.
Çekirdek
Çekirdek, başlangıç noktasının ikili görüntünün 1 değerinin her pikselinin üzerine yerleştirildiği basit bir şekildir. OpenCV, çekirdeği NxN matrisiyle sınırlar, burada N tek sayıdır. Çekirdeğin kökeni merkezdir. Ortak bir çekirdek
Farklı çekirdekler, görüntüyü farklı şekilde etkileyebilir, örneğin yalnızca dikey olarak aşındırma veya genişletme.
Referans için, oluşturduğumuz ikili imajımız:
Erozyon
Bilgisayarla görmedeki erozyon, topraktaki erozyona benzer. Ön plandaki nesnelerin sınırlarından uzaklaşır. Bu işlem arka plandaki gürültüyü ortadan kaldırabilir.
kernel = np.ones((3, 3), np.uint8)
binary_img = cv2.erode(binary_img, kernel, iterations = 1)
Erozyon sırasında, üst üste binen çekirdeğin pikselleri tamamen ikili görüntünün pikselleri tarafından kapsanmazsa, üzerine bindirildiği piksel silinir.
Dilation-Genişleme
Genleşme erozyonun tam tersidir. Sınırlardan uzaklaşmak yerine onlara katkıda bulunuyor. Bu işlem, daha geniş bir bölgedeki küçük delikleri kaldırabilir.
kernel = np.ones((3, 3), np.uint8)
binary_img = cv2.dilate(binary_img, kernel, iterations = 1)
Genişletme sırasında, üst üste binen her çekirdeğin her pikseli genişlemeye dahil edilir.
Opening-Açılış
Açılma erozyon ve ardından genişlemedir. Bu işlem, daha büyük özelliklerin şeklini etkilemeden gürültüyü ortadan kaldırır.
kernel = np.ones((3, 3), np.uint8)
binary_img = cv2.morphologyEx(binary_img, cv2.MORPH_OPEN, kernel)
Not
Bu özel durumda, sağ üstteki piksellerden kurtulmak için daha fazla açma yinelemesi yapmak uygundur.
Closing-Kapanış
Kapatma genişlemedir ve ardından erozyon meydana gelir. Bu işlem, daha büyük unsurların şeklini etkilemeden küçük delikleri veya kırılmaları giderir.
kernel = np.ones((3, 3), np.uint8)
binary_img = cv2.morphologyEx(binary_img, cv2.MORPH_CLOSE, kernel)