MATLAB ile Görüntü İşleme

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…

Görüntü iyileştirme komutları

imadjust:
görüntü yoğunluğu değerini ve renk haritasını ayarlar.

histeq: histogramı eşitleyerek kontrastı artırır.

adapthisteq: CLAHE(kontrast sınırlı adaptif histogram eşitleme) algoritması kullanarak kontrastı artırır.

I = imread('tire.tif');
A = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh');
B = histeq(I);
subplot(231),imshow(I);
subplot(232),imshow(A); title('adapthisteq uygulanmış');
subplot(233),imshow(B); title('histeq uygulanmış');


medfilt2: 2 boyutlu medyan filtreleme yapar.
wiener2: 2 boyutlu adaptif gürültü temizleme filtresidir.

I=imread('eight.tif');
no=imnoise(I,'salt & pepper',0.02);
filt1=medfilt2(no); filt2=wiener2(no);
subplot(2,2,1); imshow(I), title('Orijinal resim')
subplot(2,2,2); imshow(no), title('Gürültülü resim')
subplot(2,2,3); imshow(filt1), title('Medyan filtresi uygulanmış')
subplot(2,2,4); imshow(filt2), title('Wiener filtresı uygulanmış')


Doğrusal filtreleme komutları

fspecial: önceden tanımlanmış 2 boyutlu filtreleri oluşturur.

► Kullanım şekli; F = fspecial(‘filtre’ , parametre)



imfilter: çok boyutlu görüntüleri filtreler.


Morfolojik işlemler


strel: strel, morfolojik işlemlerde kullanılan yapısal filtre elemanıdır. Morfolojik işlemleri hangi şekil ve parametrelerle uygulayacağımızı strel ile belirleriz.

► Kullanım şekli; SE = strel (filtreleme şekli, parametre)
► Örnek; SE =strel(‘disk’, R) R; yarıçap

SE = strel(‘square’, L) L; karenin bir kenarının uzunluğu


imdilate: açma işlemini yapar.
imerode: aşındırma işlemi yapar.

bw = imread('rice.png');
lvl=graythresh(bw);
bw=im2bw(bw,lvl);
se = strel('line',11,70);
se1 = strel('square',8);
bw2 = imdilate(bw,se);
bw3 = imerode(bw,se1);
subplot(231), imshow(bw), title('Original')
subplot(232), imshow(bw2), title('Dilate sonucu')
subplot(233), imshow(bw3), title('erode sonucu')

► Örnekte; rice.png görüntüsü sonucun daha anlaşılır gözükmesi için binary moda çevrildi. İşlemler gri seviyede de yapılabilir. se ve se1 olarak iki tane maske belirlendi. Maskelerin parametreleri isteğe göre değiştirilebilir. Mesela; açma işleminin daha belirgin olması için se maskesinin parametreleri artırılmalı. se1 maskesinde 8 sayısı 12 yapıldığında beyaz noktaların tamamen kaybolduğu görülür.


imclose, imopen: imdilate ve imerode işlemlerinin birlikte kullanılması ile oluşan filtrelerdir. Uygulama mantıkları benzerdir.

imfill: gri seviyede veya binary modda açıklıkları doldurur.


bwarea: binary modda alan nesnelerin alanını hesaplar.
bwareaopen: binary modda küçük parçaları(bağlı olmayan) yok eder. aşındırma işleminin benzeridir.
bwconncomp:
bağlı komponentleri buldurur.

BW = imread('text.png');
CC = bwconncomp(BW);
numPixels = cellfun(@numel,CC.PixelIdxList);
[biggest,idx] = max(numPixels);
BW(CC.PixelIdxList{idx}) = 0;
figure; imshow(BW);

► Örnekte; en büyük yer kaplayan harflerin sillindiği görülür.

bwmorph: binary modda morfolojik işlemler yapılır. Birçok maskeleme çeşidi vardır. Bu maskeleme çeşitlerinin bazılarını örnekte göreceğiz.

BW = imread('coins.png');
lvl=graythresh(BW);
BW=im2bw(BW,lvl);
BW2 = bwmorph(BW,'remove');
BW3 = bwmorph(BW,'skel',Inf);
BW4 = bwmorph(BW,'thin');
subplot(221),imshow(BW), title('original');
subplot(222),imshow(BW2), title('remove ');
subplot(223),imshow(BW3),title('skel'),
subplot(224),imshow(BW4),title('thin'),


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: MATLAB ile Görüntü İşleme
MATLAB ile Görüntü İşleme
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaq8rpOr-cGKjoOewmMwmautbLR3JAKe-d8t4xQ2mRu0k97LoIzTpskGv2oVn99ybAhz3Vspgt1lKv9VMNdksxcvlucbyCJ6N4g9bMAVtaK9JWfBFQTtFQS6WB-PeFuUUH_HKBEZDQZuQ/s1600/im_process_warp.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaq8rpOr-cGKjoOewmMwmautbLR3JAKe-d8t4xQ2mRu0k97LoIzTpskGv2oVn99ybAhz3Vspgt1lKv9VMNdksxcvlucbyCJ6N4g9bMAVtaK9JWfBFQTtFQS6WB-PeFuUUH_HKBEZDQZuQ/s72-c/im_process_warp.jpg
Çağlar GÜL
https://elektronikafa.blogspot.com/2015/08/matlab-ile-goruntu-isleme.html
https://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/2015/08/matlab-ile-goruntu-isleme.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