Özgür yazılımlarla görüntü İşleme
TRANSCRIPT
ZGR YAZILIMLARLAGRNT LEME
Enes [email protected]
Akademik Biliim 2013, Antalya
erik
Grnt, Saysal Grnt
Grnt leme
Grnt leme in zgr Ktphaneler:OpenCV (Open Source Computer Vision)
Python (PIL, NumPy, SciPy)
Grnt lemleri
Grnt leme Algoritmalar:Histogram Eitleme
Matematik Temelli Algoritmalar
Filtreler
rnek Uygulamalar ve Sonu
Grnt
ki boyutlu bir sahneyi temsil eden veri
(resim, video vb.)
http://www.gnu.org/graphics/meditate.html
Saysal Grnt
Saysal deerlerden oluan grnt
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 Deerleri
Piksel deeri aral grntnn niteliini deitirir.
0 genelde siyah temsil ederken n-1 beyaz temsil eder.
n = 2b 'dir.b = 8 iin; n = 256 olur.Bu deerler iin 0 siyah, 255 beyaz temsil eder.
(b: Grntnn 1 pikselini ifade etmek iin gereken bit says)
Saysal Grnt eitleri
kili (Binary) Grnt
Gri lekli (Grayscale) Grnt
Renkli (Colour) Grnt
kili (Binary Grnt)
Her pikselin, renk bilgisi iin sadece iki deerden birini alabilecei saysal grntler
Dk renk deerleri 0 (siyah)
Yksek renk deerleri 1 (beyaz)
Gri lekli (Grayscale) Grnt
Her pikselin, renk bilgisi iin ayn deeri ald
saysal grntler
Gri = (R + G + B) / 3
Renkli (Colour) Grnt
Her pikselin, renk bilgisi iin farkl deerleri alabildii saysal grntler
Piksellerin renk deerleri bir renk uzayndaki genellikle kanaln karmyla elde edilir.
RGB iin krmz, yeil ve mavi kanallarnn farkl tonlarndan ortak bir renk ortaya kar.
Grnt leme
Saysal olarak elde edilmi grntlerin bilgisayar yardm ile analiz edilmesi ve ilenmesi
Grnt leme
Kaynak [2]'den dzenlenmitir.
Grnt leme Kullanm Amalar
Grnt yiletirme
Grnt Onarma
Grnt Sktrma
Grnt Analiz Etme
Grnt Tanma
vb.
Grnt leme Uygulama Alanlar
TpAstronomiCorafyaBiyolojiEndstriyel UygulamalarMhendislikBelge lemeGvenlik, Savunma ve HukukParmak zi, Plaka, ris, Yz Tanma
Grnt leme in
zgr Ktphaneler
OpenCV (Open Source Computer Vision)
Python (PIL, NumPy, SciPy)
SimpleCV
GNU Octave
Aforge.NET
VTK, FIJI...
Dier Yaygn
zgr Ktphane ve Aralar
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)
Gerek zamanl bilgisayarl gr ve makine renmesi ktphanesi
Intel, Willow Garage, Itseez tarafndan gelitiriliyor
Python, C, C++ ve Java arayzlerine sahip
OpenCV Kullanm Alanlar
Grnt ileme
Yz, yz ifadesi, nesne tanma
Hareket, nesne belirleme, izleme
Hareket anlama
Robot bilim, insan bilgisayar etkileimi...
Python Python Imaging Library
Python yorumlaycs iin grnt ileme ktphanesi
Temel, kullanl grnt ilemleri
Python - NumPy
Python iin bilimsel hesaplama arac
n-boyutlu dizi nesneleri(vektr, matris, grnt vb.)
Lineer Cebir fonksiyonlar
Fourier dnmleri
Python - SciPy
Python iin NumPy tabanl hesaplama ktphanesi
Eniyileme, istatistik, sinyal ileme,grnt ileme
Grnt lemleri
a[m,n] gibi bir girdi grntsn, b[m,n] gibi bir kt grntsne evirir.
Nokta : kt, alnan noktann deerine bal
Yerel : kt, alnan nokta ve komularna bal
Global : kt, tm grntnn deerlerine bal
Grnt lemleri
Nokta Yerel
Global
Kaynak [2]'den dzenlenmitir.
Grnt leme Algoritmalar
Grnt Histogramlarna Bal Algoritmalar
Matematik Temelli Algoritmalar
Convolution (Evriim) Algoritmalar
Filtreler
Younluk Histogramlar
Piksel younluk saylarn tutan histogramlardr.
http://en.wikipedia.org/wiki/Histogram_equalization
Histogram Eitleme
Grntnn belli bir gri seviyesinde younlam histogramn tm gri seviyesi aralna yaymak
http://en.wikipedia.org/wiki/Histogram_equalization
Histogram Eitleme
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_imagecv.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 grnt bilgilerinin bulunduu matrisler ise:Add X + YDiff X - Y XOR numpy.logical_xor(x1, x2[, out])
Filtreleme
Grnt zerinde bir filtre var gibi her pikselin deerinin yeniden hesaplanmas
Grntlerdeki grltleri azaltma, grntleri bltleme gibi ilemlerde kullanlr
Filtreler
Dorusal (Linear) Filtreler:uniform, gen, yumuatma, kenar belirleme
Dorusal Olmayan (Non-linear) Filtreler:median, min, max, percentile
Ortanca (Median) Filtre
Seilen pikselin etrafndaki piksellerin ortalamalarna gre deer almas
Bulankl azaltr
Grnt zerindeki grltleri yok eder
Ortanca (Median) Filtre
1
1
5
5
30
5
5
1
10
1
1
1
5
1
1
5
Srala
1
Sonu
Ortanca (Median) Filtre
1
1
5
5
30
5
5
1
10
1
1
10
1
1
1
10
Srala
1
5
5
5
5
5
5
1
Sonu
Dk Frekansl Filtreler
Grnty yumuatr
Detaylar ve grlty yok eder
Yksek Frekansl Filtreler
Bulank grntleri keskinletirir
Piksellerin greceli ztln artrr
=
-
Kenar Belirleme (Edge Detection)
Grnt iindeki nesne ya da farkllklarn elde edilmesi
Grntdeki renk geileri keskinletirilir
Sobel Filtresi
Grntnn ilk trevidir
Kenar belirleme amacyla kullanlr
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 ktphanesini Python arayz ile kullanabiliriz
from opencv import cv
Filtreler (Python ile OpenCV)
from opencv import cvdef gaussianBlur ( image ) :result = cv .
cvCreateMat ( image . rows , image . cols , image . type
)filterSize = 43cv . cvSmooth ( image , result , cv . CV_GAUSSIAN ,
filterSize )return result
Gaussian Blur
rnek Uygulamalar
Catch Me If You CanOpenCV, Python
https://github.com/nsates/catch_me_if_you_can
rnek Uygulamalar
Kedi BltlemeOpenCV, Python
http://www.youtube.com/watch?v=Cb_J91u89HU#!
rnek Uygulamalar
Gerek Zamanl Nesne TakibiOpenCV, cvBlob
http://www.youtube.com/watch?v=LNaL58GRou4
Sonular
Grnt ilemede zgr yazlmlar kullanmak;
Sizi zgr klar
Farkl ortam (iletim sistemleri) ve farkl programlama dillerinde gelitirme yapmanz salar
Yksek miktarlarda yazlm creti demekten kurtarr
Gl ktphanelerle alma olana salar
Sonular
OpenCV, Python gibi zgr yazlmlar iin basl ya da web zerinden paylalan bir sr belgeye, kaynak koda ve eitim videolarna eriebilirsiniz.
Ayrca siz de almalarnz zgr yazlm lisanslar ile lisanslayarak zgrce paylaabilir, bylece bakalarnn da sizin bilgilerinizden yararlanmasn salayabilirsiniz.
Kaynaklar
[1] Grnt leme (Image Processing) Ders Notu, Do. Dr. Aybars Uur, zmir
[2] Grnt leme Sunumu, K.Sinan Yldrm, 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
TEEKKRLER...
DNLEDNZ N