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.
08.05.2013 tarihli yazı 55651 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
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET