İnternette İstediğiniz Gibi Çevrimiçi Para Kazanma!

M2C2 Yapay Görme Eğitim Serisi: Yapay Zekaya Doğru

Şu yazıyı okuyorsunuz: M2C2 Yapay Görme Eğitim Serisi: Yapay Zekaya Doğru

İlk olarak Yapay Zekaya Doğru’da yayınlandı.

Modül 2: Evrişimli Filtreler ve Kenar Tespiti

Bölüm 2— Filtreler

Buradan mı başlıyorsunuz? Bu makale bir dizi bilgisayarla görme eğitiminin bir parçasıdır. Burası yapabileceğin yer başlamak.

Öğrenme hedefleri:

  1. Filtreler nedir?
  2. Sobel filtresi nedir?
  3. Sobel filtresi nasıl oluşturulur ve uygulanır?
  4. Laplace filtresi nedir?
  5. Laplace filtresi nasıl oluşturulur ve uygulanır?

Önceki gereksinimler: Önceki eğitimler

Filtre nedir?

Bilgisayarla görmede filtre, görüntüyü bir şekilde dönüştürmek için görüntüye uygulanan matematiksel bir işlemdir. Filtreler, görüntülerden bilgi çıkarmak, özellikleri geliştirmek, gürültüyü gidermek ve görüntüleri daha sonraki işlemlere hazırlamak için kullanılır.

  1. Gauss filtresi: Yüksek frekanslı gürültüyü ortadan kaldırarak görüntüyü yumuşatır.
  2. sobel filtresi– Görüntünün yatay ve dikey yönlerdeki degradesini hesaplayarak görüntünün kenarlarını algılar.
  3. Laplace filtresi– Görüntünün ikinci türevini hesaplayarak görüntünün yoğunluğundaki değişiklikleri tespit eder.
  4. orta filtre– Her pikseli komşu piksellerin ortalama değeriyle değiştirerek görüntüdeki gürültüyü giderir.
  5. ikili filtre: kenarları koruyarak görüntüyü yumuşatır

Filtreler, bir görüntüyü çekirdek veya filtre olarak bilinen küçük bir matrisle evriştirerek çalışır. Filtre, görüntüdeki her piksele ortalanır ve komşu piksellerin değerleri, filtre matrisindeki karşılık gelen değerlerle çarpılır. Ortaya çıkan ürünler daha sonra eklenir ve toplam, işlenen pikselin değerini değiştirmek için kullanılır.

  1. İthalat

numpy’yi npi olarak içe aktar matplotlib.pyplot’u plt% matplotlib çevrimiçi içe aktarma cv2 olarak içe aktar

2. Görselleri istediğiniz formatta yükleyin

RGB renk şemasını kullandığımız için görselleri doğrudan RGB kanallarına yükleyeceğim.

image3 = cv2.cvtColor(cv2.imread(‘görüntü_yolu’),cv2.COLOR_BGR2RGB)

3. Resmin izini sürün

plt.imshow(image3)plt.set_title(‘Resim 3’)plt.show()

Aldığım örnek için gösterilen resim aşağıdaki gibidir

İmajımızı gri tonlamaya dönüştürecek yardımcı fonksiyon yazma

def to_gray(resim):cv2.cvtColor(resim,cv2.COLOR_RGB2GRAY) değerini döndürür

Bir çekirdek oluşturmak

Sobel filtresi: dikey kenarları tespit etmek için kullanılır

  • biçim -> [-k,0,k]
  • belirli bir yöndeki yoğunluktaki ani değişiklikleri tespit etmek (burada)

4. Sobel filtresi

Aşağıda bir sobel filtresinin neye benzediğine dair örnek format verilmiştir; bu filtrelerin arkasındaki matematiği öğrenmek istiyorsanız buna göz atabilirsiniz. madde

sobel_x = np.matrix([[-1,0,1],[-5,0,5],[-1,0,1]])filtered_x = cv2.filter2D(to_gray(image3),-1,sobel_x) #, ‘çıktı görüntüsünün formatını değiştirmemeyi ve onu giriş görüntüsüyle aynı tutmayı’ temsil eder’plt.imshow(filtered_x,cmap=’ gri ‘)

üretme:

Eşik değerini değiştirmenin çıktıyı nasıl değiştirdiğini görelim

# Eşiğin üzerindeki noktaların beyaz/görünür geri değer olması için bir eşik ayarlayın, Binary_image1 = cv2.threshold(filtered_x,50,255,cv2.BINARY_THRESHOLD)retval, Binary_image2 = cv2.threshold(filtered_x,100,255,cv2.BINARY_THRESHOLD)retval , Binary_image3 = cv2.threshold(filtered_x,150,255,cv2.BINARY_THRESHOLD)retval, Binary_image4 = cv2.threshold(filtered_x,200,255,cv2.BINARY_THRESHOLD)

fig,(ax1,ax2,ax3,ax4) = plt.subplots(1,4,figsize=(15,8))ax1.set_title(‘eşik 50′)ax1.imshow(binary_image1,cmap=’gray’)ax2 .set_title(‘eşik 100′)ax2.imshow(binary_image2,cmap=’gri’)ax3.set_title(‘eşik 150′)ax3.imshow(binary_image3,cmap=’grey’)ax4.set_title(‘eşik 200′) ax4.imshow(binary_image4,cmap=’gray’)

Neden bir eşik belirlemelisiniz?

  • Burada eşik kullanmanın amacı görüntüdeki gürültüyü ortadan kaldırmaktır; Örneğin eşik değeri 50 olan görsel 1’de çok sayıda çizgi tespit ettik ancak eşiği artırdıkça daha az çizgi tespit edildi.
  • Bir görüntüde gürültüye değil, yalnızca güçlü çizgilere ihtiyacımız olduğunda yüksek bir eşiğe ihtiyacımız var.
  • Yaşadığımız görüntüyü düşünün. Farz et ki

Sobel filtresi: yatay kenarları tespit etmek için kullanılır

biçim -> [-k,0,k]

  • belirli bir yöndeki yoğunluktaki ani değişiklikleri tespit etmek (burada dikey)

sobel_y = np.array([[-1,-5,-1],[0,0,0],[1,5,1]])filtered_y = cv2.filter2D(to_gray(image3),-1,sobel_y)plt.imshow(filtered_y,cmap=’gray’) # Eşiğin üzerindeki noktalar beyaz/görünür geri dönüş olacak şekilde bir eşik ayarlayın, ikili_görüntü1 = cv2. eşik(filtered_y,50,255,cv2.BINARY_THRESHOLD)geri alma, Binary_image2 = cv2.threshold(filtered_y,100,255,cv2.BINARY_THRESHOLD)geri alma, Binary_image3 = cv2.threshold(filtered_y,150,255,cv2.BINARY_THRESHOLD) geri alma, ikili_ resim4 = cv2 .eşik( filtered_y,200,255,cv2.BINARY_THRESHOLD)

fig,(ax1,ax2,ax3,ax4) = plt.subplots(1,4,figsize=(15,8))ax1.set_title(‘eşik 50′)ax1.imshow(binary_image1,cmap=’gray’)ax2 .set_title(‘eşik 100′)ax2.imshow(binary_image2,cmap=’gri’)ax3.set_title(‘eşik 150′)ax3.imshow(binary_image3,cmap=’grey’)ax4.set_title(‘eşik 200′) ax4.imshow(binary_image4,cmap=’gray’)

Laplace filtresi

  • Bir görüntünün kenarlarını geliştirmek için Laplace filtresi kullanılır. Yoğunluktaki değişiklikleri tespit etmek için görüntüye ikinci dereceden türev çekirdeği uygular.

kernel_size = 3def lap_filter(k):laplacian_filter = np.array([[1, 1, 1],[1, -k, 1],[1, 1, 1]])laplacian_filter = laplacian_filter / np.sum(np.abs(laplacian_filter))return laplacian_filter # Lalacian filtresini uygula

img = cv2.imread(‘img_path’, cv2.IMREAD_GRAYSCALE)

filtered_3 = cv2.filter2D(img, -1, lap_filter(3))filtered_5 = ​​​​cv2.filter2D(img, -1, lap_filter(5))filtered_7 = cv2.filter2D(img, -1, lap_filter(7))

fig,(ax1,ax2,ax3) = plt.subplots(1,3,figsize=(15,8))ax1.set_title(‘k = 3′)ax1.imshow(filtered_3,cmap=’gray’)ax2. set_title(‘k = 5′)ax2.imshow(filtered_5,cmap=’gray’)ax3.set_title(‘k = 7′)ax3.imshow(filtered_7,cmap=’gray’)

Dürüm

Böylece bu ders için öğrenme hedeflerimizi tamamladık.

Bundan sonra filtreler oluşturacak ve bunları seçtiğiniz görsellere uygulayacaksınız.

Referans: Okuma materyali

  1. Laplace filtreleri
  2. Orta filtreler
  3. İkili Filtreler

Bağlamak GitHub.

Bağlantı kataloğu Burada

Sonraki

Bunların hepsi filtreler ve türleri içindir; bir sonraki ders Gauss filtresine ayrılacaktır.

Böylelikle bu yazımızın da sonuna geldik. bir dahaki sefere görüşürüz

O zamana kadar daha fazla bilgi için beni takip edin ve benimle bağlantı kurmayı unutmayın. LinkedIn.❤❤❤

Towards AI aracılığıyla yayınlandı

Diğer ilginç konular: