ݺߣ

ݺߣShare a Scribd company logo
ÖZGÜR YAZILIMLARLA
 GÖRÜNTÜ İŞLEME

           Enes Ateş
       enes@enesates.com

   Akademik Bilişim 2013, Antalya
İçerik
●   Görüntü, Sayısal Görüntü
●   Görüntü İşleme
●   Görüntü İşleme İçin Özgür Kütüphaneler:
    –   OpenCV (Open Source Computer Vision)
    –   Python (PIL, NumPy, SciPy)
●   Görüntü İşlemleri
●   Görüntü İşleme Algoritmaları:
    –   Histogram Eşitleme
    –   Matematik Temelli Algoritmalar
    –   Filtreler
●   Örnek Uygulamalar ve Sonuç
Görüntü


İki boyutlu bir sahneyi temsil eden veri

          (resim, video vb.)




         http://www.gnu.org/graphics/meditate.html
Sayısal Görüntü

 Sayısal değerlerden oluşan görüntü

Pikseller matrisi – RGB (hsv, cmyk vb.)

                       94, 55, 50, 255, 61, 19, 241, 43 …

                       151, 2, 26, 255, 186, 93, 15, 24 …

                       80, 46, 42, 255, 146, 62, 129, 4 …

                       247, 48, 46, 255, 34, 1, 51, 231 ...
                       …
                       …
Piksel Değerleri

  Piksel değeri aralığı görüntünün niteliğini değiştirir.

0 genelde siyahı temsil ederken n-1 beyazı temsil eder.

                        n = 2b 'dir.
                b = 8 için; n = 256 olur.
   Bu değerler için 0 siyahı, 255 beyazı temsil eder.

 (b: Görüntünün 1 pikselini ifade etmek için gereken bit sayısı)
Sayısal Görüntü Çeşitleri


       İkili (Binary) Görüntü

  Gri Ölçekli (Grayscale) Görüntü

     Renkli (Colour) Görüntü
İkili (Binary Görüntü)

Her pikselin, renk bilgisi için sadece iki değerden birini
             alabileceği sayısal görüntüler

            Düşük renk değerleri → 0 (siyah)

           Yüksek renk değerleri → 1 (beyaz)
Gri Ölçekli (Grayscale) Görüntü

Her pikselin, renk bilgisi için aynı değeri aldığı
               sayısal görüntüler

              Gri = (R + G + B) / 3
Renkli (Colour) Görüntü
 Her pikselin, renk bilgisi için farklı değerleri alabildiği
                   sayısal görüntüler

Piksellerin renk değerleri bir renk uzayındaki genellikle
            üç kanalın karışımıyla elde edilir.

   RGB için kırmızı, yeşil ve mavi kanallarının farklı
      tonlarından ortak bir renk ortaya çıkar.
Görüntü İşleme



Sayısal olarak elde edilmiş görüntülerin
         bilgisayar yardımı ile
     analiz edilmesi ve işlenmesi
Görüntü İşleme




  Kaynak [2]'den düzenlenmiştir.
Görüntü İşleme Kullanım Amaçları

         Görüntü İyileştirme

          Görüntü Onarma

         Görüntü Sıkıştırma

         Görüntü Analiz Etme

           Görüntü Tanıma

                 vb.
Görüntü İşleme Uygulama Alanları

                     Tıp
                 Astronomi
                  Coğrafya
                   Biyoloji
         Endüstriyel Uygulamalar
                Mühendislik
               Belge İşleme
       Güvenlik, Savunma ve Hukuk
     Parmak İzi, Plaka, İris, Yüz Tanıma
Görüntü İşleme İçin
    Özgür Kütüphaneler
OpenCV (Open Source Computer Vision)

     Python (PIL, NumPy, SciPy)

             SimpleCV

            GNU Octave

            Aforge.NET

             VTK, FIJI
                ...
Diğer Yaygın
Özgür Kütüphane ve Araçlar

              OpenGL

GIMP (GNU Image Manipulation Program)

              Inkscape

               Blender
                  ...
OpenCV
(Open Source Computer Vision)

GNU/Linux, Android, Windows ve Mac OS destekli

                 BSD Lisanslı

      2500'den fazla eniyilenmiş algoritma
OpenCV
(Open Source Computer Vision)

       Gerçek zamanlı bilgisayarlı görü ve
        makine öğrenmesi kütüphanesi

Intel, Willow Garage, Itseez tarafından geliştiriliyor

    Python, C, C++ ve Java arayüzlerine sahip
OpenCV Kullanım Alanları

           Görüntü işleme

   Yüz, yüz ifadesi, nesne tanıma

  Hareket, nesne belirleme, izleme

           Hareket anlama

Robot bilim, insan bilgisayar etkileşimi
                  ...
Python – Python Imaging Library



Python yorumlayıcısı için görüntü işleme kütüphanesi

         Temel, kullanışlı görüntü işlemleri
Python - NumPy


Python için bilimsel hesaplama aracı

      n-boyutlu dizi nesneleri
    (vektör, matris, görüntü vb.)

     Lineer Cebir fonksiyonları

        Fourier dönüşümleri
Python - SciPy



Python için NumPy tabanlı hesaplama kütüphanesi

       Eniyileme, istatistik, sinyal işleme,
                görüntü işleme
Görüntü İşlemleri

       a[m,n] gibi bir girdi görüntüsünü,
    b[m,n] gibi bir çıktı görüntüsüne çevirir.

 Nokta : Çıktı, alınan noktanın değerine bağlı

Yerel : Çıktı, alınan nokta ve komşularına bağlı

Global : Çıktı, tüm görüntünün değerlerine bağlı
Görüntü İşlemleri



Nokta                                    Yerel




              Global

        Kaynak [2]'den düzenlenmiştir.
Görüntü İşleme Algoritmaları


Görüntü Histogramlarına Bağlı Algoritmalar

      Matematik Temelli Algoritmalar

    Convolution (Evrişim) Algoritmaları

                 Filtreler
Yoğunluk Histogramları


Piksel yoğunluk sayılarını tutan histogramlardır.




             http://en.wikipedia.org/wiki/Histogram_equalization
Histogram Eşitleme


Görüntünün belli bir gri seviyesinde yoğunlaşmış
 histogramını tüm gri seviyesi aralığına yaymak




             http://en.wikipedia.org/wiki/Histogram_equalization
Histogram Eşitleme
image = cv.LoadImage(file_name, cv.CV_LOAD_IMAGE_COLOR)
gray_image = cv.CreateImage(cv.GetSize(image), image.depth, 1)
cv.CvtColor(image, gray_image, cv.CV_BGR2GRAY)
image = gray_image
cv.EqualizeHist(image, image)
---------------------------------------------------------------------------------------------------------------------------------------
def histeq(im, nbr_bins=256):
       Imhist, bins = histogram(im.flatten(),nbr_bins,normed=True)
       cdf = imhist.cumsum() # cumulative distribution function
       cdf = 255 * cdf / cdf[-1] # normalize
       im2 = interp(im.flatten(),bins[:-1],cdf) # use linear interpolation of cdf to find new pixel values
       return im2.reshape(im.shape), cdf
Matematik Temelli Algoritmalar


          İkili İşlemler:
       NOT, OR, AND, XOR


          Aritmetik İşlemler:
     +, -, *, /, LOG, EXP, SQRT
Matematik Temelli Algoritmalar

              a             b




 NOT b   a OR b   a AND b       a XOR b   a-b
Matematik Temelli Algoritmalar
cv.Not(src, dst)
cv.Or(src1, src2, dst, mask=NULL)
cv.And(src1, src2, dst, mask=NULL)
cv.Add(src1, src2, dst, mask=NULL)
cv.AbsDiff(src1, src2, dst)
--------------------------------------------------------------------------------------------------------------------
X ve Y görüntü bilgilerinin bulunduğu matrisler ise:
Add → X + Y
Diff → X - Y
XOR → numpy.logical_xor(x1, x2[, out])
Filtreleme


Görüntü üzerinde bir filtre var gibi her pikselin değerinin
               yeniden hesaplanması

     Görüntülerdeki gürültüleri azaltma, görüntüleri
          bölütleme gibi işlemlerde kullanılır
Filtreler


         Doğrusal (Linear) Filtreler:
uniform, üçgen, yumuşatma, kenar belirleme

  Doğrusal Olmayan (Non-linear) Filtreler:
       median, min, max, percentile
Ortanca (Median) Filtre

Seçilen pikselin etrafındaki piksellerin ortalamalarına
                  göre değer alması

                  Bulanıklığı azaltır

       Görüntü üzerindeki gürültüleri yok eder
Ortanca (Median) Filtre


         1   1   5   5   30 5   5   1   10 1
         1   1   5
Sırala
         1   1   5

Sonuç        1
Ortanca (Median) Filtre


         1   1   5   5   30 5    5   1   10 1
                                     1   10 1
Sırala
                                     1   1   10

Sonuç        1   5   5   5   5   5   5   1
Düşük Frekanslı Filtreler

      Görüntüyü yumuşatır

 Detayları ve gürültüyü yok eder
Yüksek Frekanslı Filtreler


  Bulanık görüntüleri keskinleştirir

 Piksellerin göreceli zıtlığını artırır



          =                 -
Kenar Belirleme (Edge Detection)

  Görüntü içindeki nesne ya da farklılıkların
                elde edilmesi

   Görüntüdeki renk geçişleri keskinleştirilir
Sobel Filtresi

      Görüntünün ilk türevidir

Kenar belirleme amacıyla kullanılır
 Yatay Sobel               Dikey Sobel
Filtreler
cv.Smooth(src, dst, smoothtype = CV_GAUSSIAN, param1=3, p2=0, p3=0, p4=0)
cv.Smooth(src, dst, smoothtype = CV_MEDIAN, param1=3, p2=0, p3=0, p4=0)
cv.Smooth(src, dst, smoothtype = CV_BLUR, param1=3, p2=0, p3=0, p4=0)
cv.Sobel(src, dst, xorder, yorder, apertureSize = 3) # xorder → dikey, yorder → yatay
--------------------------------------------------------------------------------------------------------------------
scipy.ndimage.filters.median_filter(input, size=None, footprint=None, output=None,
mode='reflect', cval=0.0, origin=0)
scipy.ndimage.filters.gaussian_filter(input, sigma, order=0, output=None, mode='reflect',
cval=0.0)
scipy.ndimage.filters.sobel(input, axis=-1, output=None, mode='reflect', cval=0.0)
Filtreler (Python ile OpenCV)


       OpenCV kütüphanesini
    Python arayüzü ile kullanabiliriz



       from opencv import cv
Filtreler (Python ile OpenCV)
from opencv import cv
def gaussianBlur ( image ) :
    result = cv . cvCreateMat ( image . rows , image . cols , image . type )
    filterSize = 43
    cv . cvSmooth ( image , result , cv . CV_GAUSSIAN , filterSize )
    return result


                                Gaussian Blur
Örnek Uygulamalar

        Catch Me If You Can
             OpenCV, Python

https://github.com/nsates/catch_me_if_you_can
Örnek Uygulamalar

            Kedi Bölütleme
              OpenCV, Python

http://www.youtube.com/watch?v=Cb_J91u89HU#!
Örnek Uygulamalar

   Gerçek Zamanlı Nesne Takibi
             OpenCV, cvBlob

http://www.youtube.com/watch?v=LNaL58GRou4
Sonuçlar

 Görüntü işlemede özgür yazılımları kullanmak;

                   Sizi özgür kılar

Farklı ortam (işletim sistemleri) ve farklı programlama
         dillerinde geliştirme yapmanızı sağlar

Yüksek miktarlarda yazılım ücreti ödemekten kurtarır

    Güçlü kütüphanelerle çalışma olanağı sağlar
Sonuçlar


 OpenCV, Python gibi özgür yazılımlar için basılı ya da
web üzerinden paylaşılan bir sürü belgeye, kaynak koda
          ve eğitim videolarına erişebilirsiniz.

 Ayrıca siz de çalışmalarınızı özgür yazılım lisansları ile
lisanslayarak özgürce paylaşabilir, böylece başkalarının
da sizin bilgilerinizden yararlanmasını sağlayabilirsiniz.
Kaynaklar
●   [1] “Görüntü İşleme (Image Processing)” Ders Notu, Doç. Dr. Aybars Uğur, İzmir
●   [2] “Görüntü İşleme” Sunumu, K.Sinan Yıldırım, Cenk İnce, Tahir Emre Kalaycı, 2003, İzmir
●
    [3] Introduction to Computer Vision in Python, Brian Thorne, University of Cantenbury, 2009
●
    [4] Programming Computer Vision with Python, Jan Erik Solem, 2012
●   [5] http://opencv.org/
●   [6] http://python.org/
●   [7] http://www.pythonware.com/products/pil/
●   [8] http://www.numpy.org/
●   [9] http://www.scipy.org/
●   [10] http://tux.crystalxp.net/en.id.1871-rap-tux.html
●   [11] http://www.gnu.org/graphics/
●   [12] http://en.wikipedia.org/wiki/Histogram_equalization
İİĞİİ
    İÇİN

         TEŞEKKÜRLER...

More Related Content

Özgür Yazılımlarla Görüntü İşleme

  • 1. ÖZGÜR YAZILIMLARLA GÖRÜNTÜ İŞLEME Enes Ateş enes@enesates.com Akademik Bilişim 2013, Antalya
  • 2. İçerik ● Görüntü, Sayısal Görüntü ● Görüntü İşleme ● Görüntü İşleme İçin Özgür Kütüphaneler: – OpenCV (Open Source Computer Vision) – Python (PIL, NumPy, SciPy) ● Görüntü İşlemleri ● Görüntü İşleme Algoritmaları: – Histogram Eşitleme – Matematik Temelli Algoritmalar – Filtreler ● Örnek Uygulamalar ve Sonuç
  • 3. Görüntü İki boyutlu bir sahneyi temsil eden veri (resim, video vb.) http://www.gnu.org/graphics/meditate.html
  • 4. Sayısal Görüntü Sayısal değerlerden oluşan görüntü Pikseller matrisi – RGB (hsv, cmyk vb.) 94, 55, 50, 255, 61, 19, 241, 43 … 151, 2, 26, 255, 186, 93, 15, 24 … 80, 46, 42, 255, 146, 62, 129, 4 … 247, 48, 46, 255, 34, 1, 51, 231 ... … …
  • 5. Piksel Değerleri Piksel değeri aralığı görüntünün niteliğini değiştirir. 0 genelde siyahı temsil ederken n-1 beyazı temsil eder. n = 2b 'dir. b = 8 için; n = 256 olur. Bu değerler için 0 siyahı, 255 beyazı temsil eder. (b: Görüntünün 1 pikselini ifade etmek için gereken bit sayısı)
  • 6. Sayısal Görüntü Çeşitleri İkili (Binary) Görüntü Gri Ölçekli (Grayscale) Görüntü Renkli (Colour) Görüntü
  • 7. İkili (Binary Görüntü) Her pikselin, renk bilgisi için sadece iki değerden birini alabileceği sayısal görüntüler Düşük renk değerleri → 0 (siyah) Yüksek renk değerleri → 1 (beyaz)
  • 8. Gri Ölçekli (Grayscale) Görüntü Her pikselin, renk bilgisi için aynı değeri aldığı sayısal görüntüler Gri = (R + G + B) / 3
  • 9. Renkli (Colour) Görüntü Her pikselin, renk bilgisi için farklı değerleri alabildiği sayısal görüntüler Piksellerin renk değerleri bir renk uzayındaki genellikle üç kanalın karışımıyla elde edilir. RGB için kırmızı, yeşil ve mavi kanallarının farklı tonlarından ortak bir renk ortaya çıkar.
  • 10. Görüntü İşleme Sayısal olarak elde edilmiş görüntülerin bilgisayar yardımı ile analiz edilmesi ve işlenmesi
  • 11. Görüntü İşleme Kaynak [2]'den düzenlenmiştir.
  • 12. Görüntü İşleme Kullanım Amaçları Görüntü İyileştirme Görüntü Onarma Görüntü Sıkıştırma Görüntü Analiz Etme Görüntü Tanıma vb.
  • 13. Görüntü İşleme Uygulama Alanları Tıp Astronomi Coğrafya Biyoloji Endüstriyel Uygulamalar Mühendislik Belge İşleme Güvenlik, Savunma ve Hukuk Parmak İzi, Plaka, İris, Yüz Tanıma
  • 14. Görüntü İşleme İçin Özgür Kütüphaneler OpenCV (Open Source Computer Vision) Python (PIL, NumPy, SciPy) SimpleCV GNU Octave Aforge.NET VTK, FIJI ...
  • 15. Diğer Yaygın Özgür Kütüphane ve Araçlar OpenGL GIMP (GNU Image Manipulation Program) Inkscape Blender ...
  • 16. OpenCV (Open Source Computer Vision) GNU/Linux, Android, Windows ve Mac OS destekli BSD Lisanslı 2500'den fazla eniyilenmiş algoritma
  • 17. OpenCV (Open Source Computer Vision) Gerçek zamanlı bilgisayarlı görü ve makine öğrenmesi kütüphanesi Intel, Willow Garage, Itseez tarafından geliştiriliyor Python, C, C++ ve Java arayüzlerine sahip
  • 18. OpenCV Kullanım Alanları Görüntü işleme Yüz, yüz ifadesi, nesne tanıma Hareket, nesne belirleme, izleme Hareket anlama Robot bilim, insan bilgisayar etkileşimi ...
  • 19. Python – Python Imaging Library Python yorumlayıcısı için görüntü işleme kütüphanesi Temel, kullanışlı görüntü işlemleri
  • 20. Python - NumPy Python için bilimsel hesaplama aracı n-boyutlu dizi nesneleri (vektör, matris, görüntü vb.) Lineer Cebir fonksiyonları Fourier dönüşümleri
  • 21. Python - SciPy Python için NumPy tabanlı hesaplama kütüphanesi Eniyileme, istatistik, sinyal işleme, görüntü işleme
  • 22. Görüntü İşlemleri a[m,n] gibi bir girdi görüntüsünü, b[m,n] gibi bir çıktı görüntüsüne çevirir. Nokta : Çıktı, alınan noktanın değerine bağlı Yerel : Çıktı, alınan nokta ve komşularına bağlı Global : Çıktı, tüm görüntünün değerlerine bağlı
  • 23. Görüntü İşlemleri Nokta Yerel Global Kaynak [2]'den düzenlenmiştir.
  • 24. Görüntü İşleme Algoritmaları Görüntü Histogramlarına Bağlı Algoritmalar Matematik Temelli Algoritmalar Convolution (Evrişim) Algoritmaları Filtreler
  • 25. Yoğunluk Histogramları Piksel yoğunluk sayılarını tutan histogramlardır. http://en.wikipedia.org/wiki/Histogram_equalization
  • 26. Histogram Eşitleme Görüntünün belli bir gri seviyesinde yoğunlaşmış histogramını tüm gri seviyesi aralığına yaymak http://en.wikipedia.org/wiki/Histogram_equalization
  • 27. Histogram Eşitleme image = cv.LoadImage(file_name, cv.CV_LOAD_IMAGE_COLOR) gray_image = cv.CreateImage(cv.GetSize(image), image.depth, 1) cv.CvtColor(image, gray_image, cv.CV_BGR2GRAY) image = gray_image cv.EqualizeHist(image, image) --------------------------------------------------------------------------------------------------------------------------------------- def histeq(im, nbr_bins=256): Imhist, bins = histogram(im.flatten(),nbr_bins,normed=True) cdf = imhist.cumsum() # cumulative distribution function cdf = 255 * cdf / cdf[-1] # normalize im2 = interp(im.flatten(),bins[:-1],cdf) # use linear interpolation of cdf to find new pixel values return im2.reshape(im.shape), cdf
  • 28. Matematik Temelli Algoritmalar İkili İşlemler: NOT, OR, AND, XOR Aritmetik İşlemler: +, -, *, /, LOG, EXP, SQRT
  • 29. Matematik Temelli Algoritmalar a b NOT b a OR b a AND b a XOR b a-b
  • 30. Matematik Temelli Algoritmalar cv.Not(src, dst) cv.Or(src1, src2, dst, mask=NULL) cv.And(src1, src2, dst, mask=NULL) cv.Add(src1, src2, dst, mask=NULL) cv.AbsDiff(src1, src2, dst) -------------------------------------------------------------------------------------------------------------------- X ve Y görüntü bilgilerinin bulunduğu matrisler ise: Add → X + Y Diff → X - Y XOR → numpy.logical_xor(x1, x2[, out])
  • 31. Filtreleme Görüntü üzerinde bir filtre var gibi her pikselin değerinin yeniden hesaplanması Görüntülerdeki gürültüleri azaltma, görüntüleri bölütleme gibi işlemlerde kullanılır
  • 32. Filtreler Doğrusal (Linear) Filtreler: uniform, üçgen, yumuşatma, kenar belirleme Doğrusal Olmayan (Non-linear) Filtreler: median, min, max, percentile
  • 33. Ortanca (Median) Filtre Seçilen pikselin etrafındaki piksellerin ortalamalarına göre değer alması Bulanıklığı azaltır Görüntü üzerindeki gürültüleri yok eder
  • 34. Ortanca (Median) Filtre 1 1 5 5 30 5 5 1 10 1 1 1 5 Sırala 1 1 5 Sonuç 1
  • 35. Ortanca (Median) Filtre 1 1 5 5 30 5 5 1 10 1 1 10 1 Sırala 1 1 10 Sonuç 1 5 5 5 5 5 5 1
  • 36. Düşük Frekanslı Filtreler Görüntüyü yumuşatır Detayları ve gürültüyü yok eder
  • 37. Yüksek Frekanslı Filtreler Bulanık görüntüleri keskinleştirir Piksellerin göreceli zıtlığını artırır = -
  • 38. Kenar Belirleme (Edge Detection) Görüntü içindeki nesne ya da farklılıkların elde edilmesi Görüntüdeki renk geçişleri keskinleştirilir
  • 39. Sobel Filtresi Görüntünün ilk türevidir Kenar belirleme amacıyla kullanılır Yatay Sobel Dikey Sobel
  • 40. Filtreler cv.Smooth(src, dst, smoothtype = CV_GAUSSIAN, param1=3, p2=0, p3=0, p4=0) cv.Smooth(src, dst, smoothtype = CV_MEDIAN, param1=3, p2=0, p3=0, p4=0) cv.Smooth(src, dst, smoothtype = CV_BLUR, param1=3, p2=0, p3=0, p4=0) cv.Sobel(src, dst, xorder, yorder, apertureSize = 3) # xorder → dikey, yorder → yatay -------------------------------------------------------------------------------------------------------------------- scipy.ndimage.filters.median_filter(input, size=None, footprint=None, output=None, mode='reflect', cval=0.0, origin=0) scipy.ndimage.filters.gaussian_filter(input, sigma, order=0, output=None, mode='reflect', cval=0.0) scipy.ndimage.filters.sobel(input, axis=-1, output=None, mode='reflect', cval=0.0)
  • 41. Filtreler (Python ile OpenCV) OpenCV kütüphanesini Python arayüzü ile kullanabiliriz from opencv import cv
  • 42. Filtreler (Python ile OpenCV) from opencv import cv def gaussianBlur ( image ) : result = cv . cvCreateMat ( image . rows , image . cols , image . type ) filterSize = 43 cv . cvSmooth ( image , result , cv . CV_GAUSSIAN , filterSize ) return result Gaussian Blur
  • 43. Örnek Uygulamalar Catch Me If You Can OpenCV, Python https://github.com/nsates/catch_me_if_you_can
  • 44. Örnek Uygulamalar Kedi Bölütleme OpenCV, Python http://www.youtube.com/watch?v=Cb_J91u89HU#!
  • 45. Örnek Uygulamalar Gerçek Zamanlı Nesne Takibi OpenCV, cvBlob http://www.youtube.com/watch?v=LNaL58GRou4
  • 46. Sonuçlar Görüntü işlemede özgür yazılımları kullanmak; Sizi özgür kılar Farklı ortam (işletim sistemleri) ve farklı programlama dillerinde geliştirme yapmanızı sağlar Yüksek miktarlarda yazılım ücreti ödemekten kurtarır Güçlü kütüphanelerle çalışma olanağı sağlar
  • 47. Sonuçlar OpenCV, Python gibi özgür yazılımlar için basılı ya da web üzerinden paylaşılan bir sürü belgeye, kaynak koda ve eğitim videolarına erişebilirsiniz. Ayrıca siz de çalışmalarınızı özgür yazılım lisansları ile lisanslayarak özgürce paylaşabilir, böylece başkalarının da sizin bilgilerinizden yararlanmasını sağlayabilirsiniz.
  • 48. Kaynaklar ● [1] “Görüntü İşleme (Image Processing)” Ders Notu, Doç. Dr. Aybars Uğur, İzmir ● [2] “Görüntü İşleme” Sunumu, K.Sinan Yıldırım, Cenk İnce, Tahir Emre Kalaycı, 2003, İzmir ● [3] Introduction to Computer Vision in Python, Brian Thorne, University of Cantenbury, 2009 ● [4] Programming Computer Vision with Python, Jan Erik Solem, 2012 ● [5] http://opencv.org/ ● [6] http://python.org/ ● [7] http://www.pythonware.com/products/pil/ ● [8] http://www.numpy.org/ ● [9] http://www.scipy.org/ ● [10] http://tux.crystalxp.net/en.id.1871-rap-tux.html ● [11] http://www.gnu.org/graphics/ ● [12] http://en.wikipedia.org/wiki/Histogram_equalization
  • 49. İİĞİİ İÇİN TEŞEKKÜRLER...