Özgür yazılımlarla görüntü İşleme

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

If you can't read please download the document

Upload: enes-ates

Post on 16-Apr-2017

7.742 views

Category:

Technology


3 download

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