Morfolojik işlemler, piksellerin yapısına ve düzenine göre görüntüleri değiştirir. Komşu piksellerin düzenine bağlı olarak özelliklerini değiştirmek için bir giriş görüntüsüne çekirdek uygularlar. Erozyon ve genleşme gibi morfolojik işlemler, özellikle ikili veya gri tonlamalı görüntüler için görüntü işlemedeki tekniklerdir. Gürültüyü temizleyen ve nesne sınırlarını hassaslaştıran şekilleri analiz etmeye yardımcı olurlar.
Erozyon
Görüntü işlemede erozyon, nesne kenarlarındaki pikselleri kaldırarak nesneleri etkili bir şekilde küçülterek ve küçük beyaz gürültüyü ortadan kaldırarak bir görüntüdeki nesnelerin sınırlarını küçülten ve incelten morfolojik bir işlemdir.
Amaç
- Ön plandaki nesnelerin (genellikle beyaz pikseller) sınırlarını daraltır veya aşındırır.
- İnce beyaz gürültüyü ortadan kaldırır ve dokunan nesneleri ayırır.
Nasıl Çalışır?
- Bir çekirdek (genellikle 3×3 5×5 veya 7×7 birler matrisi) görüntü boyunca kayar.
- Bir piksel yalnızca çekirdeğin altındaki tüm pikseller beyaz olduğunda beyaz (1) kalır; aksi halde siyah olur (0).
- Bu işlem nesne boyutunu küçültür ve kenarları aşındırır.
Dilatasyon
Genişletme, nesne kenarlarına pikseller ekleyerek nesnelerin daha büyük görünmesini ve küçük boşlukları veya delikleri doldurmasını sağlayarak bir görüntüdeki nesnelerin sınırlarını genişleten morfolojik bir işlemdir.
Amaç:
- Ön plan nesnelerinin sınırlarını genişletir.
- Özellikleri vurgular veya büyütür ve küçük boşlukları doldurur.
Nasıl Çalışır:
- Çekirdek, görüntü üzerinde benzer şekilde evrilmiştir.
- Aşağıdaki durumlarda bir piksel beyaza (1) ayarlanır: en az bir çekirdeğin altındaki karşılık gelen piksellerin yüzdesi beyazdır.
- Sonuç olarak beyaz bölgeler küçük delikleri birleştirerek veya kırık parçaları birleştirerek büyür.
Erozyon ve Dilatasyon Uygulaması
Python'da OpenCV ile Erozyon ve Genişlemeyi uygulayalım
1. Adım: Kitaplıkları İçe Aktarın
Gerekli kütüphaneleri ithal edeceğiz
- cv2 : Görüntü işleme için OpenCV kütüphanesi.
- uyuşuk : Sayısal işlemler ve çekirdek oluşturmak için.
- matplotlib.pyplot : Not defterlerindeki görüntüleri görüntülemek için.
Adım 2: Giriş Görüntüsünü Yükleyin ve Yapısal Öğeleri (Çekirdek) Tanımlayın
Çekirdek, işlemin mahallesini tanımlar. Yaygın seçenekler dikdörtgenler veya disklerdir.
PythonKullanılan görsel şuradan indirilebilir: Burada .
img = cv2.imread('input.webp' 0) plt.imshow(img cmap='gray') plt.title('Original Image') plt.axis('off') plt.show() kernel = np.ones((5 5) np.uint8)
Çıkış:
Orijinal3. Adım: Erozyon Uygulayın
Erozyon, çekirdeği görüntü boyunca kaydırarak çalışır. Bir piksel yalnızca çekirdeğin altındaki tüm pikseller beyazsa beyaz kalır (255), aksi halde siyah olur (0). Bu, nesne sınırlarını azaltır ve küçük beyaz gürültüyü ortadan kaldırır.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Çıkış:
Erozyon SonrasıAdım 4: Dilatasyon Uygulayın
Genişletme, çekirdeği görüntü boyunca kaydırır ve çekirdeğin altındaki en az bir piksel beyazsa piksel beyaz olur. Bu, beyaz bölgeleri veya nesneleri kalınlaştırır ve küçük delikleri doldurur.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Çıkış:
Dilatasyon SonrasıUygulamalar
Erozyon
- Bir görüntüden izole edilmiş beyaz gürültünün kaldırılması.
- Birleştirilen veya birbirine değen nesneleri ayırmak.
- Nesne boyutunu küçülterek nesne sınırlarını bulma.
Dilatasyon
- Nesnelerdeki küçük deliklerin veya boşlukların doldurulması.
- Aynı nesnenin kırık veya bağlantısız parçalarının birleştirilmesi.
- Erozyondan sonra ("açılma" işleminin bir parçası olarak) gürültüyü ortadan kaldırırken nesne boyutunu eski haline getirmek için kullanılır.
Erozyon ve genişleme, görüntü işlemedeki temel morfolojik işlemlerdir ve görüntülerdeki şekilleri netleştirmemize ve manipüle etmemize olanak tanır. Basit yapılandırma öğelerini kullanarak bu teknikler, gürültüyü ortadan kaldırmaya, nesneleri ayırmaya veya bağlamaya ve görüntü özelliklerini geliştirmeye yardımcı olur; bu da onları OpenCV ve Python ile bilgisayarlı görme görevlerinde etkili ön işleme ve analiz için gerekli araçlar haline getirir.
Test Oluştur