7 Mart 2016 Pazartesi

OPENCV DERSLERİ (DERS:10) IMAGE THRESHOLDING DERS-1

NEDİR?

Görüntü Eşikleme (Image Thresholding) 

  • Bu fonksiyon genellikle gri tonlu bir görüntüden, ikili görüntü oluşturmak için kullanılır. Renkli görüntülerle de kullanılabilir. 
  • Kaynak görüntünün piksel değerlerini çok büyük ya da çok küçük değerlere filtreler. 
  • Çoğunlukla görüntülerdeki gürültüyü kaldırmak için kullanılır.
  • Birçok threshold tipi mevcuttur: 
1-Binary Tip 
2-Binary Inverted Tip
3-To Zero Tip 
4-To Zero Inverted Tip
5-Truncate Tip


Kullanım Şekli

cv2.threshold(src, thresh, maxval, type[, dst])



  • SRC; Giriş dizisidir. Bu dizi gri tonlamalı bir resim olmalıdır.
  • TRESH; Eşik ve Piksel değerlerini sınıflandırmak için kullanılır
  • MAXVAL; THRESH_BINARY ve THRESH_BINARY_INV eşikleme türlerini maksimum değerde kullanmak için yazılır.
  • TYPE; Threshold tipleri belirlenir.

Threshold Tipleri




  • cv2.THRESH_BINARY
  • cv2.THRESH_BINARY_INV
  • cv2.THRESH_TRUNC
  • cv2.THRESH_TOZERO


  • cv2.THRESH_TOZERO_INV




  • Threshold Örnek Kod;


    Örneğin "messi.jpg" adlı resim dosyasını görüntü eşiklemek istersek;

    import cv2
    import numpy as np
    from matplotlib import pyplot as plt

    #Resim Gri Skalada Okunur#
    img = cv2.imread('messi.jpg',0)

    #Resime Görüntü Eşiklemeler uygulanır#

    ret,thresh1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
    ret,thresh2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)
    ret,thresh3 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
    ret,thresh4 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO)
    ret,thresh5 = cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)

    #Görüntü Ekranının İsimleri ve Değişkenleri Atanır#

    titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']
    images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]

    #Aynı Ekranda Thresholdlar Gözlenir#
    for i in xrange(6):
        plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
        plt.title(titles[i])
        plt.xticks([]),plt.yticks([])

    plt.show()

    Sonuç;


    Görüntü Eşikleme Görüntü işlemede sık başvurulan bir metoddur.

    Ders:9⬅                                                                 Ders:11








    2 yorum:

    1. ret,thresh1 ki ret neden kullaniyoruz

      YanıtlaSil
    2. Kusura bakma kardeşim sınavlardan dolayı dönemedim öncelikle;
      Eşikleme metodu 2 ana bölümden oluşur;
      1)ret(retval): bu senin dönüş değerindir her threshold uygulamasında mutlaka kullanılmalır.
      2)Output image: Bu çıkış yani threshold uygulandıktan sonra resmin son halidir.

      yani kısaca Eşikleme metodu;
      ret,output_image=cv2.threshold(input_image,esik_altsınır,esik_ustsınır,esikleme_tipi)

      şeklinde kullanılır

      YanıtlaSil