EmguCV ile OTSU Eşikleme Yöntemi (OTSU's Method)

Merhabalar arkdaşlar. Bu yazımda özel bir threshold tipi olan OTSU'nun methodundan bahsedeceğim. Bu threshold tipini ayrı ele almak istedim. 

Adını bu metodu geliştiren Nobuyuki Otsu’dan almıştır. Yöntem gri seviye görüntüler üzerinde çalışır ve sadece renklerin görüntü üzerinde kaçar defa bulunduğuna bakar. Gri seviyedeki bir görüntüyü ikili seviyeye dönüştürülerek kullanılabilecek en uygun eşik değerinin tespitini sağlar. 

Global eşiklemede, eşik değeri için keyfi bir değer kullanmıştık. Peki, seçtiğimiz değerin iyi olduğunu nasıl bilebiliriz? Bu yöntemde, renklerin görüntü üzerinde var olma sayısına bakıldığı için uygulamaların eşik belirleme adımına geçmeden önce renk histogramı hesaplanır ve tüm hesaplamalar bu histogram üzerinden yapılır. Otsu algoritması histogramda eşikleme yapılabilecek en uygun konumun bulunması için kullanılır.

Otsu algoritmasında histogramın her bir elemanını eşik gibi düşünerek her biri için “weight”,”mean” ve ”variance” diye tabir edilen veriler hem eşikten önce(background) hem de eşikten sonrası(foreground) için hesaplanır.

Her bir eleman eşik kabul edilerek her bir eleman için hesaplamalar yapılacağı için belirlenen elemandan öncesi eşik öncesi(background),belirlenen elemandan sonrası eşik sonrası(foreground) olarak adlandırılır.

Örnekler üzerinden formüllerin kullanışı ve çıkarılması:









yukarıdaki şekilde 6 tonlu bir görüntü ve histogramı bulunmaktadır.










weight(background) = seçilen histogram elemanına kadar olan elemanların piksel sayıları toplamı(kendisi dahil değil) / toplam piksel sayısı

mean(background) = kendinden önceki her eleman için(histogram elemanı*histogram elemanının değeri) toplamları / seçilen histogram elemanına kadar olan elemanların piksel sayıları toplamı(kendisi dahil değil)

variance(background) = kendinden önceki her eleman için histogram elemanı-mean(background * (histogram elemanı-mean(background)) * histogram elemanının değeri / seçilen histogram elemanına kadar olan elemanların piksel sayıları toplamı(kendisi dahil değil)

Eşik sonrası değerleri hesaplamak için kullanılan formüller(foreground):
weight(foreground) = seçilen histogram elemanından itibaren elemanların piksel sayıları toplamı(kendisi dahil) / toplam piksel sayısı
mean(foreground) = kendinden sonraki her eleman için(histogram elemanı * histogram elemanının değeri) toplamları / seçilen histogram elemanından itibaren elemanların piksel sayıları toplamı(kendisi dahil)
variance(foreground) = kendinden sonraki her eleman için histogram elemanı-mean(background*(histogram elemanı-mean(background))*histogram elemanının değeri / seçilen histogram elemanından itibaren elemanların piksel sayıları toplamı(kendisi dahil)


Bu üretilen “weight”,”mean” ve “variance” değerleri kullanılarak “within class variance” ve “ between class variance” değerleri hesaplanır.

Yani sınıf içi global varyans ve sınıflar arası global varyans hesaplanır.

Bu hesaplamalardan elde edilen değerler içerisinden sınıflar arasındaki yoğunluk değerleri için en iyi ayrımı en küçük sınıf içi global varyans ya da en büyük sınıflar arası global varyans değerini veren eşik değeri optimum eşik değeri seçilir.

within class variance = (weight(background) * variance(background)) +(weight(foreground) * variance(foreground))

between class variance = weight(background) * weight(foreground) * (mean(background)-mean(foreground)) * (mean(background)-mean(foreground))

Eşik seçiminde önce sınıflar arası varyansın(between class variance) maksimum değeri değerlendirilir. Bu eşiğin öncesinde kalan (background) kısımlardaki değerler “0” diğerleri “1” yani (255) olarak görüntüler düzenlenir.

Teorisini anlattıktan sonra pratiğe gelecek olursak. Aşağıdaki resimi dikkatlice inceleyiniz. 


Yukarıdaki resimde gürültü bir resim giriş olarak verilmiştir ve bu resime global ve otsu eşikleme yapılmıştır. Ama thresholding yapılmasına rağmen görüntüdeki gürültüler temizlenmemiştir. Bu yüzde 3. resimde gürültüleri bastırmak için Gaussian filtre uygulayarak görüntüyü yumuşatma yoluna gildilmiştir. Bu görüntü bimodaldır. Yani histogram eğrisine baktığımızda iki tepe vardır. Bu görüntü için yaklaşık olarak bu zirvelerin ortasında bir değer eşik değeri olarak alabiliriz. Otsu'nun metodu tam olarak bunu yapar. Basit bir deyişle, bimodal bir görüntü için görüntü histogramından otomatik olarak bir eşik değeri hesaplar. 


UYGULAMA: 


Ad

Arduino Autocad Bilim-Teknoloji Biyomedikal Sistemler C-Programlama C# C# Programlama Diferansiyel Denklemler Dijital Kontrol Sistemleri Elektrik Devreleri 1 Elektrik Devreleri 2 Elektrik Makineleri 1 Elektrik Makineleri 2 Elektrik Tesislerinde Koruma Elektromantetik Alan Teorisi Elektromantetik Dalga Teorisi Elektronik 1 Elektronik 2 Elektronik-Devreler EmguCV Genel Fizik Genel Kimya Genel Matematik Gömülü Linux Güç Elektroniği Haberleşme Sistemleri İşaret ve Sistemler Lineer-Cebir Lojik Devreler Malzeme Bilimi MATLAB Mikroişlemciler Olasılık ve İstatistik Otomatik Kontrol Sistemleri PLC-Otomasyon Proje Yönetimi ve Girişimcilik Raspberry Pi Sayısal Analiz Sayısal İşaret İşleme Teknik-Kutuphane Termodinamik Yüksek Gerilim Tekniği
false
ltr
item
Çağlar GÜL: EmguCV ile OTSU Eşikleme Yöntemi (OTSU's Method)
EmguCV ile OTSU Eşikleme Yöntemi (OTSU's Method)
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivlYYDHz2hKGqRkvKgad5uWmaVEX9OirWILrFplqEV-Ug-93voSeamfLlwASKs_6SNOoDl1Q_Ywt2bbIl7JSqr4apTdLBNS_mxXfrn851PAH2obVDWSwT8xF-fFRLuZJ3SUo_iksZjb0E/s200/otsuOrig.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivlYYDHz2hKGqRkvKgad5uWmaVEX9OirWILrFplqEV-Ug-93voSeamfLlwASKs_6SNOoDl1Q_Ywt2bbIl7JSqr4apTdLBNS_mxXfrn851PAH2obVDWSwT8xF-fFRLuZJ3SUo_iksZjb0E/s72-c/otsuOrig.png
Çağlar GÜL
http://elektronikafa.blogspot.com/2017/05/emgucv-ile-otsu-esikleme-yontemi-otsu.html
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/2017/05/emgucv-ile-otsu-esikleme-yontemi-otsu.html
true
871250089272898028
UTF-8
Not found any posts Not found any related posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU Tag ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Contents See also related Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy