elektrik port üyelik servisleri elektrik port üyelik servisleri

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

Görüntü işleme teknikleri ile, sayısal görüntüler iyileştirilerek nesne tanıma, hedef tanıma gibi işlemler gerçekleştirilebilmektedir. Görüntü işleme, amaca göre çeşitli işlemlerden oluşmaktadır. Bu yazımızda, her sektörde uygulama alanı bulan görüntü işleme tekniklerini, Matlab 'ın yaygın kullanılan görüntü işleme komutlarıyla birlikte örneklerle inceleyeceğiz.



A- A+
25.03.2013 tarihli yazı 37096 kez okunmuştur.
Görüntü işleme; tasarım, imalat, güvenlik, tıp, elektronik, makine ve jeodezi gibi alanlarda çok geniş bir uygulama alanı bulmuştur. Aşağıda, uygulama alanlarına örnekler verilmiştir:

 ► Askeri (hedef tanıma, izleme)
 ► Tıp (damar analizi, bilgisayarlı tomogrofi, ultrason)
 ► Güvenlik (nesne takibi, hareket algılama, yüz tanıma)
 ► Trafik (trafik kontrol, plaka tanıma, trafik ışığı (işareti) tanıma)
  Endüstri (nesne sayma, kalite kontrol, robotik uygulamalar)
  Tarımsal uygulamalar (ekin verimliliği tespiti)
  Astronomi (uydu görüntüleri ile hava tahmini)
  Jeodezi ve Fotogrametri (uzaktan algılama) 
  Perakende (insan sayma, davranış analizi, mağaza izleme)
  Çevre güvenliği (çevre kirliliği tespiti)

 
Bu yazımızda yukarıdaki uygulamaları geliştirmek için kullanılan, Matlab’ın görüntü işleme komutlarının bazılarını örneklerle inceleyeceğiz. Yazının devamında örnek bir uygulama yapmaya çalışacağız.
 
imread: imread ile üzerinde çalışılmak istenilen fotoğraf bir değişkene atanarak matlab workspace için tanımlanır ve ardından imshow ile pencerede gösterilebilir. Workspace’te imgenin boyutu, çözünürlüğü gibi bilgileri görebilirsiniz.

İmtool: imtool ile  bazı işlemlerin yapılabileceği bir pencere açılır.
örnek kodları yazarken workspacedeki verileri temizlemek için, clear all ve clc komutlarını en başa yazmayı unutmayalım.
 
I = imread(‘ornek.jpg’)
imshow(I)
imtool(I)

Warp: görüntüyü (içinde yazı olan görüntü daha iyi olur ) belli yüzeylerde gösterir.
 
resim = imread('rice.png');
[x1,y1,z1] = cylinder;
[x2,y2,z2] = sphere;
imshow(resim); title('Orijinal resim');
figure;
subplot(1,2,1); warp(x1,y1,z1,resim); title('cylinder');
subplot(1,2,2); warp(x2,y2,z2,resim); title('sphere');
 

 

 

Tür dönüşüm komutları

 
rgb2gray: renkli görüntüyü gri seviyeye çevirir.

hsv2rgb: hsv renkleri rgb renklere çevirir.

graythresh: graythreshold komutu görüntüdeki parlaklık eşiğini otomatik olarak belirler ve sonuç olarak 0 – 1 arasında bir sayı (level) oluşturur. Görüntüdeki parlaklık sınırları ile yapacağımız işlemlerde graythreshold’ tan elde ettiğimiz sayıyı kullanırız. Görüntü üzerinde belirli işlemleri yapabilmemiz için öncelikle gri seviyede çalışmamız gerekir.
Bunun için I= rgb2gray(I) komutu kullanılır.

Bu kod örneği ile görüntünün binary şekli elde edilir. 

level = graythresh(I);
bw = im2bw(I,level);
bw = bwareaopen(bw, 50);
figure; imshow(bw);
 




im2uint8: uint8 renk hassasiyetine dönüştürür. Genelde görüntüler uint8 türündedir. Her piksel İşaretsiz 8 bit (0 – 255) arası değere sahiptir.

Diğer dönüşüm komutları; demosaic, gray2ind, grayslice,im2int16, label2rgb ,im2double, im2uint16, mat2gray…

 

Uzamsal dönüşüm komutları


Kodların adlarından anlaşılacağı gibi fiziksel değişiklikler yapabileceğiniz bazı komutlar: imcrop, imresize, imrotate, imtransform

 

Görüntü analizi komutları


Bwboundaries: binary modda bölgelerin sınırlarını belirler.

Bu örnekte, yeşil çizgiyle sınırlanmış alanların sayısını belirleyebiliriz. Bu örnekle daha sonra bahsedeceğimiz, morfolojik işlemler gerçekleştirilerek basit nesne sayma uygulaması yapılabilir.

I = imread('rice.png');
BW = im2bw(I, graythresh(I));
B = bwboundaries(BW);
figure; imshow(BW);
text(10,10,strcat('\color{red}bulunan sınırlar:',num2str(length(B))))
hold on;
for k = 1:length(B)
    boundary = B{k};
    plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 1)
end
 



 
Edge: özel filtreler yardımıyla gri seviyedeki görüntülerin sınırları belirlenir.

I = imread('rice.png');
imshow(I);
BW1 = edge(I,'prewitt');
BW2 = edge(I,'canny');
figure; imshow(BW1);
figure; imshow(BW2);
 
diğer analiz komutları: hough, houghlines, corner


Doku analizi komutları


entropy: gri seviye görüntünün entropisini hesaplar.

entropyfilt: yerel entropi hesaplar.
 
I=imread('circuit.tif');
e=entropy(I)
ye=entropyfilt(a);
imshow(ye,[])
 
rangefilt: görünütünün 3x3 komşuluğunda sınıflandırması yapar.

stdfilt: görüntünün 3x 3 komşuluğunda standart sapmasını hesaplar.

clear all,  clc
I=imread('circuit.tif');
I1=rangefilt(I);
I2=stdfilt(I);
figure; imshow(I);
figure; imshow(I1);
figure; imshow(I2); 

 

Aritmetik işlem komutları


imadd: iki görüntüyü toplar veya bir görüntüye sabit bir sayı (parlaklık) ekler.

imcomplement: binary modda siyah alanlar beyaz, beyaz alanlar siyaha çevrilir.

I = imread('rice.png');
J = imadd(I,50);
subplot(1,2,1), imshow(I);
subplot(1,2,2), imshow(J);
lvl=graythresh(I);
BW=im2bw(I,lvl);
bw = imcomplement(BW);
figure;
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(bw);




 
diğer aritmetik işlemler: imabsdiff, imdivide, immultiply, imsubtract


 

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