elektrik port üyelik servisleri elektrik port üyelik servisleri

MATLAB ile Görüntü İşleme Uygulaması |
Elektrikport Akademi

Matlab ile Görüntü İşleme 1 - 2 yazılarımızda, görüntü işleme ile ilgili temel adımlardan bahsettik. Bu yazımızda basit nesne bulma ve sayma (count coins) uygulamasından bahsedeceğiz.



A- A+
08.05.2013 tarihli yazı 25224 kez okunmuştur.
Görüntü işleme ile ilgili temel komutlar için:

 

► MATLAB ile Görüntü İşleme 1
► MATLAB ile Görüntü İşleme 2

 
 
Bu uygulamada resmin içindeki bozuk paraları bulmaya, etiketlemeye ve değerlerine göre hesaplamaya çalışacağız. Görüntü olarak Matlab programında hazır bulunan 'coins.png' yi kullandık.

Matlab' de görüntü işleme ile ilgili uygulama geliştirirken yapmamız gereken ilk adımlar gri seviyeye, binary seviyeye dönüştürme işlemleridir. Biz de uygulamamızın ilk satırlarında otomatik threshold değerine göre imgeyi binary seviyeye dönüştürdük.

 Görüntüler im2bw komutu ile binary seviyeye dönüştürüldükten sonra aşağıdaki resimde görüldüğü gibi birçok küçük alanlar oluşabilir. Görüntüyü bölümleyebilmek için bu alanları doldurmamız gerekir. Bunun için imfill işlemini gerçekleştirdik.


                                                                                    


imfill işlemi uygulanmadığında;



 Program iki çıktı vermektedir. Birincisinde sınırları çizilen bozuk paraların sayısı belirlenir; ikincisinde ise bozuk paralara alanlarına göre değer atanıp, değerleri sayılır.

 

Bölgelerin belirlenmesi:


 Sınırlar bwboundaries işlemi ile çizilir. For döngüsü çizim sayısı kadar döndürülerek çizimlerin resmin üzerinde gösterilmesine olanak sağlar.

 plot işleminin parametreleri değiştirilerek çizimin kalınlığı, rengi istenilen şekilde belirlenebilir.

B = bwboundaries(coin2);
text(10,10,strcat('\color{red}Objects Found:',num2str(length(B)))) 
hold on;
     for k=1:length(B),
       boundary = B{k};
       plot(boundary(:,2),boundary(:,1),'b','LineWidth',2);
     end

 

Alanların hesaplanması:


 bwlabel işlemi ile bağlı bileşenlerin (bozuk paralar) bilgileri bir değişkene atanır.

 regionprops ile bölgelerin özellikleri çıkarılır. Daha sonra alanlar hesaplanır (for döngüsü) alanı belli bir değerin üzerinde olanlar '5 C' ile diğerleri '10 C' ile etiketlenir.
 
[Bilgi Number]=bwlabel(coin2);
prop=regionprops(Bilgi,'Area','Centroid');
total=0;
 
figure; imshow(imread('coins.png'));hold on
for n=1:size(prop,1)
    cent=prop(n).Centroid;
    X=cent(1);Y=cent(2);
    if prop(n).Area>2000
        text(X-10,Y,'5 C') 
        total=total+5;
    else
        total=total+10;
        text(X-10,Y,'10 C') 
    end
end
 

Program çıktıları

 

 


Matlab kodu:

clc;
clear all;
figure; imshow('coins.png');
coin1 = im2bw(imread('coins.png'));
coin2 = imfill(coin1,'holes');
figure; imshow(imread('coins.png'));
B = bwboundaries(coin2);
text(10,10,strcat('\color{red}Objects Found:',num2str(length(B)))) 
hold on;
     for k=1:length(B),
       boundary = B{k};
       plot(boundary(:,2),boundary(:,1),'b','LineWidth',2);
     end
     
     
[Bilgi Number]=bwlabel(coin2);
prop=regionprops(Bilgi,'Area','Centroid');
total=0;
 
figure; imshow(imread('coins.png'));hold on
for n=1:size(prop,1)
    cent=prop(n).Centroid;
    X=cent(1);Y=cent(2);
    if prop(n).Area>2000
        text(X-10,Y,'5 C') 
        total=total+5;
    else
        total=total+10;
        text(X-10,Y,'10 C') 
    end
end
hold on
title(['Toplam: ',num2str(total),'cent'])





Kaynak:

www.mathworks.com
 

AYKUT GOKDEMIR AYKUT GOKDEMIR Yazar Hakkında Tüm yazıları Mesaj gönder Yazdır



ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar