Görüntü İşleme-2

Görüntü İyileştirme

Dijital görüntüler,günümüzde içerisinde gürültü içermektedir.Görüntüdeki gürültü sebepleri;

  • Kod hatası
  • Kuantalama hatası
  • Işıl etki
  • Işık patlaması

Önceki yazımızda matlabta elde edilen görüntüde gürültü yoktur.Bunun sebebi ise görüntü sentetik olmasıdır.

Gürültünün Çeşitleri

3 çeşit gürültü tipi vardır.

1-)Bütünsel Gürültü

Bütünsel gürültüyü çözmek için kullanılan teknikler;

  • Kontrast germe tekniği
  • Histogram dengeleme

2-)Pixel Gürültü

  • Tuz-biber gürültü
  • Renkli Gürültü

3-)Yerel Gürültüler

PATTERN RECOGNITION

İlk yapmanız gereken işlem dosyaların nereye kaydedileceğinin belirlenmesidir.Ben bilgisayarımda Yerel disk(D)’de ismi ‘komhedos’ olan klasör açtım.Matlab dosyalarını buraya kayıt edecem.Bu haftaki çalışma için bir resim seçin.Ben aşağıdaki resmi seçtim.Bu resmin komhedos dosyasında olmasına dikkat edin.Ben resmi ‘d1’ olarak isimlendirdim.

d1

 

Matlab’ı açıyoruz.

gör-1

 

Browse folder’da  ben komhedos klasörünü seçiyorum.Bu matlab dosyamı oraya kaydediyorum.

Command window’a

>>Edit

yazarız.Editör üzerinden kodlarımızı deneriz.

Her editörü açtığımızda aşağıdaki kodları yazınız.

>>clear all,clc,clf,close all;

Aşağıdaki kod I değişkenine resmi aktarmak içindir.

>>I=imread(‘d1.jpg’);

Bu işlemden sonra workspace bakarsak resmin özelliklerini görebiliriz;

a,b,x,type

a–>satır sayısı

b–>sutün sayısı

x–>renk sayısı

type–>değer tipi

uint8=0-255 adet tamsayı ile resmi oluşturduğunu belirtiyor.

Editimize sırayla ;

>>clear all,clc,clf,close all;

>>I=imread(‘d1.jpg’);

>>im=double(I);

>>imR=im(:,:,1);

>>imG=im(:,:,2);

>>imB=im(:,:,3);

>>imshow(uint8(imG));

4

Run’a basarsak aşağıdaki resmimizi elde ederiz

imR ,kırmızı ağırlıklı resim için

imG ,gri ağırlıklı resim için

imB mavi ağırlık resim için

Elde ettiğimiz görüntü gri ağırlıklı görüntüdür.

3

Workspacenize bakarsanız görüntünüzün özelliklerini görebilirsiniz.

5

 

Eğer mavi,kırmızı ve gri ağırlıklı görüntü yanyana görmek istersek subplot komutunu kullanırız.

Subplot(a,b,c), aynı düzlemde bağımsız birden çok grafik çizmek için subplot komutu kullanılır. A satır sayısını, b sütun sayısını, c ise indexi gösterir.

>>Subplot(2,3,1);   // 2.satır ve 3. sütun oluştur 1.ye bu görüntüyü yerleştir.

>>imshow(uint8(imR));

>>Subplot(2,3,2);  // 2.satır ve 3. sütun oluştur 2.ye bu görüntüyü yerleştir.

>>imshow(uint8(imG));

>>Subplot(2,3,3);  // 2.satır ve 3. sütun oluştur 3.ye bu görüntüyü yerleştir.

>>imshow(uint8(imB));

6

 

Kodumuzun son durumu aşağıdaki gibidir.

clear all,clc,clf,close all;

I=imread(‘d1.jpg’);

im=double(I);

imR=im(:,:,1);

imG=im(:,:,2);

imB=im(:,:,3);

imshow(uint8(imG));

subplot(1,3,1);

imshow(uint8(imR));

subplot(1,3,2);

imshow(uint8(imG));

subplot(1,3,3);

imshow(uint8(imB));

Şimdi bir fonksiyon yazacağız.New sonra scripti seçeriz fonksiyonumuzu oluşturmak için;

7

 

function [O]=ConvertGray(I)

im=double(I);

imR=im(:,:,1);

imG=im(:,:,2);

imB=im(:,:,3);

o=0,299*imR+0,587*imG+0,114*imB;

O=uint8(o);

Gri ağırlıklı görüntü elde etmek için yazdığımız kod.Bu hazırladığımız fonksiyonu Yerel disk(D)’de kaydederiz. ‘ConvertGray’ olarak kaydettim.

Kodumuzun son durumu;

>>clear all,clc,clf,close all;

>>I=imread(‘d1.jpg’);

>>im=double(I);

>>imR=im(:,:,1);

>>imG=im(:,:,2);

>>imB=im(:,:,3);

>>imshow(uint8(imG));

>>imGY=double(ConvertGray(I));

>>subplot(2,4,1);

>>imshow(uint8(imR));

>>subplot(2,4,2);

>>imshow(uint8(imG));

>>subplot(2,4,3);

>>imshow(uint8(imB));

>>subplot(2,4,4);

>>imshow(uint8(imGY));

Elde ettiğimiz sonuç;

8

 

Histogram

Görüntüdeki renlerin yoğunluklarını dağılımının gösterilmesine histogram denir.

Önceki kodumuza aşağıdakileri eklersek;

subplot(2,4,5);

imhist(uint8(imR));

subplot(2,4,6);

imhist(uint8(imG));

subplot(2,4,7);

imhist(uint8(imB));

subplot(2,4,8);

imhist(uint8(imGY));

9

İdeal görüntü histogram grafiği aşağıdaki gibi olmalıdır.Her renkten eşit olarak bulunmalıdır.Fotoğraf makinalarıyla çekilen görüntülerde bu denge olmaz.Bunun içinde histogram dengeleme algoritmaları geliştirerek aşağıdakine yakın grafikler elde etmeye çalışırız.

Kodumuzun son durumu;

clear all,clc,clf,close all;

I=imread(‘d1.jpg’);

im=double(I);

imR=im(:,:,1);

imG=im(:,:,2);

imB=im(:,:,3);

imshow(uint8(imG));

imGY=double(ConvertGray(I));

subplot(2,4,1);

imshow(uint8(imR));

subplot(2,4,2);

imshow(uint8(imG));

subplot(2,4,3);

imshow(uint8(imB));

subplot(2,4,4);

imshow(uint8(imGY));

subplot(2,4,5);

imhist(uint8(imR));

subplot(2,4,6);

imhist(uint8(imG));

subplot(2,4,7);

imhist(uint8(imB));

subplot(2,4,8);

imhist(uint8(imGY));

Eklemeler yapılacaktır.

Sidar ATABEY

 

 

 

 

 

 

 

Bu yazı hakkında ne düşünüyorsun ?
  • Müthiş 
  • Normal 
  • Gereksiz 
  • Faydalı 
Sidar ATABEY

About Sidar ATABEY

Elektrik-Elektronik Mühendisi. Makine Mühendisliğinde yan dal programını tamamladı. 1 sene boyunca Erasmus Programı kapsamında Polonya Silesian University of Technology'de eğitim gördü.

View all posts by Sidar ATABEY →