Bitwise & Maskeleme
Bitwise Operasyonları
Bitwise operasyonlar, ikili görüntü işleme işlemlerinde temel yapı taşlarından biridir. Bu operasyonlar, görüntülerin piksel bazında manipülasyonunu sağlar. OpenCV, AND, OR, XOR ve NOT olmak üzere dört temel bitwise operasyonunu destekler. Bu bölümde, bu operasyonların her birinin nasıl kullanılacağını ve tipik uygulama senaryolarını inceleyeceğiz.
Bitwise AND
Bitwise AND operasyonu, iki görüntünün kesişen bölgelerini bulur. Bu, iki şeklin ortak alanlarını göstermek için kullanılabilir.
bitwise_and = cv.bitwise_and(rectangle, circle)
cv.imshow('Bitwise AND', bitwise_and)
Bu örnekte, bir dikdörtgen ve bir daire oluşturulur ve bitwise_and
operasyonu uygulanır. Sonuç, her iki şeklin de kesiştiği alanı gösterir.
Bitwise OR
Bitwise OR operasyonu, iki görüntünün birleşimini alır. Bu, iki şeklin kesişen ve kesişmeyen tüm alanlarını içerir.
bitwise_or = cv.bitwise_or(rectangle, circle)
cv.imshow('Bitwise OR', bitwise_or)
Bu operasyon, her iki şeklin de tümünü gösterir - hem kesişen hem de kesişmeyen bölgeleri.
Bitwise XOR
Bitwise XOR operasyonu, iki görüntünün sadece kesişmeyen bölgelerini alır. Bu, bir görüntüden diğerini "çıkarma" etkisi yaratır.
bitwise_xor = cv.bitwise_xor(rectangle, circle)
cv.imshow('Bitwise XOR', bitwise_xor)
Bu, dikdörtgen ve dairenin yalnızca birbirleriyle kesişmeyen kısımlarını gösterir.
Bitwise NOT
Bitwise NOT operasyonu, bir görüntünün renklerini tersine çevirir. Siyah beyaza, beyaz ise siyaha dönüşür.
bitwise_not = cv.bitwise_not(circle)
cv.imshow('Circle NOT', bitwise_not)
Bu operasyon, dairenin renklerini tersine çevirir. Siyah alanlar beyaz olur, beyaz alanlar siyah olur.
Bitwise operasyonları, genellikle ikili (siyah-beyaz) görüntülerle kullanılır. Operasyonlar uygulanmadan önce, görüntülerin uygun biçimde hazırlanmış olmasını sağlayın.
Bitwise operasyonlar, görüntü maskeleri oluşturma, görüntülerden belirli bölgeleri ayırma veya farklı görüntü katmanlarını birleştirme gibi çeşitli uygulamalarda kullanılabilir. Bu teknikler, görüntü işleme ve analizinde güçlü ve esnek araçlar sunar.
Maskeleme
Maskeleme, belirli bir görüntü bölgesi üzerinde işlem yapmak için kullanılan güçlü bir tekniktir. Bir maske, belirli işlemlerin uygulanacağı alanları belirlemek için kullanılan bir ikili (siyah-beyaz) görüntüdür. Bu bölümde, OpenCV ile nasıl maskeleme yapılacağını inceleyeceğiz.
Maske Oluşturma
Maske oluşturmak için, öncelikle aynı boyutlara sahip siyah bir arka plana sahip bir 'blank' görüntü oluştururuz. Daha sonra bu arka plan üzerine, işlem yapmak istediğimiz bölgeyi beyazla belirtiriz.
blank = np.zeros(img.shape[:2], dtype='uint8')
circle = cv.circle(blank.copy(), (img.shape[1]//2 + 45, img.shape[0]//2), 100, 255, -1)
rectangle = cv.rectangle(blank.copy(), (30,30), (370,370), 255, -1)
Bu örnekte, bir daire ve bir dikdörtgen oluşturulmuştur. Daire ve dikdörtgen, maskeleme işlemi için kullanılacak şekillerdir.
Maskeleme İşlemi
Maskeleme, bir görüntü üzerinde belirli bir şekil veya bölgeyi izole etmek için kullanılır. Bunu yapmak için, bitwise_and
operasyonunu kullanırız. Maskeyi ve orijinal görüntüyü bu operasyona argüman olarak veririz.
weird_shape = cv.bitwise_and(circle, rectangle)
masked = cv.bitwise_and(img, img, mask=weird_shape)
cv.imshow('Weird Shaped Masked Image', masked)
Burada, weird_shape
bir daire ve bir dikdörtgenin kesişiminden oluşan bir şekildir. Bu şekil, orijinal görüntü üzerinde maske olarak kullanılır.
Maske Uygulama
bitwise_and
fonksiyonu kullanılarak, maske üzerinde belirlenen alan hariç tüm alanlar siyahlaşır. Bu, özgün görüntünün sadece maskelenmiş bölgesini görmemizi sağlar.
Maskeleme, görüntülerden belirli nesneleri ayırmak veya belli bir bölgeye özel işlemler uygulamak için mükemmeldir. Maskeleme işlemi sırasında, maskenin boyutunun orijinal görüntü ile aynı olması önemlidir.
Maskeleme teknikleri, görüntü işleme ve analizinde, özellikle belirli alanlarda işlem yapmak istediğinizde önemli bir araçtır. Uygulamanızın gereksinimlerine göre bu teknikleri kullanarak, görüntüler üzerinde daha hassas manipülasyonlar yapabilirsiniz.