MATLAB ve Görüntü İşleme
MATLAB ve Görüntü İşleme
İleri düzey
görüntü işleme problemlerinin standart yöntemlerle çözülmesi oldukça zordur. MATLAB,
görüntüler üzerinde kolaylıkla uygulamalar yapılabilen, sonuçların analiz
edildiği ve gerçek hayatta kullanılabilecek çözümler sunan esnek bir ortama
sahiptir. MATLAB ve Image Processing Toolbox görüntü işleme, analiz,
görselleştirme ve algoritma geliştirme için oldukça kullanışlıdır.
MATLAB’ın Desteklediği Önemli Resim Formatlarından Bazıları
MATLAB’ın çok
sayıda video ve resim formatını desteklemektedir. Bunların bazıları Tablo 3.2.1.1’
gösterilmiştir. Ayrıca resim formatları olarak BMP, DIB, JPEG, JPG, JPE, PNG, PBM, PGM, PPM, SR, RAS,
TIFF ve TIF uzantılı resim dosyaları da desteklemektedir. Bunlardan bazıları
aşağıdaki gibidir.[3]
Format
İsmi
|
Açılımı
|
Uzantıları
|
TIFF
|
Tagged Image File Format
|
.tif,.tiff
|
JPEG
|
Joint Photographic Expert Group
|
.jpg,.jpeg
|
GIF
|
Graphics Interchange Format
|
.gif
|
PNG
|
Portable Network Graphics
|
.png
|
Tablo 3.2.1.1. Resim Formatları
MATLAB’ da Görüntüyü Okuma ve Gösterme
MATLAB’ da herhangi bir görüntü
üzerinde işlem yapabilmek için öncelikle gerekli olan görüntünün bulunduğu
dizinden alınarak bir değişkene atılması daha sonra kullanılması sırasında
kolaylık sunacaktır. Bu işlemi yapabilmek için imread fonksiyonu kullanılır. Örneğin; aşağıda verilen kod
satırlarından ilki ile “ammar.png” ismindeki resim “resim” isimli değişkene
atılmıştır. Bu sayede resim değişkenine atılan bu resim MATLAB içerisinde
herhangi bir komut veya fonksiyon ile kullanılabilecektir. Bu kod örneğinin
ikinci satırında ise görüntünün imshow
komutu ile ekranda görüntülenmesi sağlanmıştır ve ayrıca imshow komutunun yanı sıra resimleri görüntülemek için kullanılan
diğer bir komut ise imtool’dur. Bu
komut ile görüntülenen resim üzerinde daha ayrıntılı bilgi sahibi olunabilir. Gölge
tespitinin ilk kısımlarında imtool
fonksiyonu bize görüntü üzerinde yorum yapmamızı sağladı. Title ise isminden anlaşılacağı gibi açılan sayfaya başlık
vermemizi sağlamaktadır.
- · resim = imread('ammar.png');
- · imshow(resim)
- · title(‘deneme resim');
- · imtool(resim);
MATLAB’ da Değişkenlerin Bilgisini Gösterme
MATLAB’ da whos fonksiyonu ile çalışma ortamındaki değişkenler listelenir.
Listelenen veriler değişkenlerin boyutu, sınıfı gibi değerlerdir.
MATLAB’ da Renkli Görüntüyü Gri Seviyeye Dönüştürme
Renkli
bir görüntüyü gri seviyeli bir resme dönüştürmek için rgb2gray komutu kullanılır.
·
resim = imread('C:\Users\ASLAN\Desktop\deneme.jpg');
·
resim = rgb2gray(resim);
·
imshow(resim)
MATLAB’ da Histogram ve Görüntü Kontrastını
Geliştirme
Bazı görüntüler düşük kontrasta
sahiptir. Düşük kontrasta sahip görüntülerin yoğunluk dağılımlarını görmek
için, imhist fonksiyonu çağrılarak
bir histogram oluşturulabilir. Histogram, bir görüntü içerisindeki renk
değerlerinin tekrarlanma sıklığını gösteren bir grafiktir. Bu grafik sayesinde
görüntünün aydınlık ya da karanlık olduğu hakkında bilgiler elde edilebilir.
Karanlık bir görüntüde sıfıra yakın renk değerlerinin sayısı fazladır. Bu
yüzden histogramda küçük değerlerde bir yığılma görülür. Aydınlık bir görüntüde
ise histogramda yüksek değerlerde bir yığılma görülür. Düşük karşıtlıkta
histogramın belirli bölgelerinde yığılma olan görüntülerde görülür. Aydınlık
veya karanlık görüntüler buna örnek verilebilir. Görüntünün histogramını
göstermek için, öncelikle rgb2gray komutu ile görüntü gri seviyeye dönüştürülür
ve imhist komutu ile histogramı
gösterilir.
·
Image = imread(‘tez.jpg’);
·
Imshow(Image);
·
Image = rgb2gray(Image), imhist(image)
Görüntüdeki kontrastı geliştirmek için
MATLAB araç kutusu birkaç farklı yol sunar. Düşük karşıtlık olan görüntülerde
histogram eşitleme yapılarak daha anlamlı görüntüler elde edilir. Histogramda
belli bir bölgede yığılmış olan değerleri yayarak yeni görüntü elde edilir.
Histogram eşitleme işlemi için MATLAB’ da histeq
fonksiyonu kullanılır. Komut satırına aşağıdaki kodlar yazılarak histogram
eşitleme yapılır.
·
resim = imread('C:\Users\ASLAN\Desktop\ammar.jpg');
·
resim = rgb2gray(resim);
·
imshow(resim)
·
i = histeq(resim);
·
figure, imhist(i)
·
figure, imshow(i);
Histogram
eşitlendikten sonra imhist komutu ile
görüntünün histogramına bakıldığında eşit dağılımlı bir grafik elde edildiği
görülür. Görüntünün histogram eşitlendikten elde edilen grafiği inceleyebilirsiniz.
MATLAB’ da Görüntüyü Dosyaya Kaydetme ve Görüntü boyutu hesaplama
Görüntüyü kaydetmek için imwrite fonksiyonu kullanılır. Parametre
olarak kaydedilecek olan görüntü ve kayır için isim girilir. Komut satırına
aşağıdaki kod yazılarak görüntü dosyaya kaydedilir. Size fonksiyonu da bize
görüntü boyutunu ve kanal sayısını vermektedir. Kod satırı aşağıdadır.
·
size(rgbImg)
·
ans =
·
385 385 3
MATLAB’ da Dosyaya Kaydedilen Görüntü
Bilgilerini Gösterme
Herhangi bir resme ait bilgileri
göstermek için imfinfo fonksiyonu
kullanılır. Kod satırı ve sonuç aşağıdaki gibidir.
·
imfinfo ('C:\Users\ASLAN\Desktop\deneme.jpg')
ans = Filename:
'C:\Users\ASLAN\Desktop\deneme.jpg'
FileModDate:
'20-Eki-2013 19:20:57'
FileSize: 12961
Format: 'jpg'
FormatVersion:
'', NumberOfSamples: 3
Width: 259,
Height: 194, BitDepth: 24, ColorType: 'truecolor', FormatSignature: ''
MATLAB’ da Görüntü Analizi ve Görüntüyü Geliştirme
MATLAB’ da bir görüntüyü imread fonksiyonu ile okuyarak bu görüntü üzerinde bazı
iyileştirmeler yapılabilir. Komut satırına aşağıdaki kodlar yazılarak görüntü
Şekil 3.2.8.1’deki gibi ekranda gösterilir.
·
I = imread(‘deneme.png’);
·
imshow(I)
Şekil
3.2.8.1. “deneme.png”
adındaki görüntü
Bu örnek
görüntüde, görüntünün alt tarafındaki arka plan aydınlığı daha parlaktır.
Arkaplan aydınlığını tahmin etmek için morfolojik açma işlemi kullanılır.
Morfolojik açma işlemini göstermek için imopen
fonksiyonu kullanılır.
·
Background = imopen(I,strel(‘disk’,15));
Komut satırına yazılan bu kodda strel, morfolojik işlemlerde kullanılan
yapısal bir filtre elemanıdır. Morfolojik işlemlerin hangi şekil ve
parametrelerle uygulanacağı strel ile
belirlenir. Kullanımı, strel(filtreleme şekli, parametre) şeklindedir. Örneğin;
SE = strel (‘disk’, R) ifadesinde R yarıçaptır. SE= strel(‘square’, L) L ise karenin bir kenarının uzunluğunu
gösterir. Komut satırına yazılan bu kodla, Şekil 3.2.8.1 “deneme.png” adındaki
görüntü Şekil 3.2.8.2’deki biçime dönüştürülür.
Şekil
3. 2. 8. 2. Strel
komutu ile arka planı değiştirilmiş görüntünün görüntüsü
Tebrik ederim mükemmel bir anlatım.
YanıtlaSil