Doç. Dr. GÜRAY SONUGÜR

Doç. Dr. Güray SONUGÜR – Öğrenci Bilgi Paylaşım Platformu

2018 Görüntü İşleme Dersi Hazırlık Soruları ve Yanıtları

Merhaba Arkadaşlar,

Aşağıdaki hazırlık sorularını mutlaka çözmeye çalışın. Çözümlerinizi Matlab üzerinden yapın. Yanlışlıklar bile olsa benimle paylaşın. Çözümlerinizi e-posta yoluyla ya da bu sayfanın yorum kısmından benimle paylaşabilirsiniz.

Kolay gelsin.

Hazırlık Soruları:

Yeni soru:

1. video1.mp4 isimli video dosyasından 5 çerçeve atlayarak görüntü okuyan ve ardışık çerçeveleri mantıksal and işleminden geçirerek bir figür penceresinden oynatan programı yazınız.

Yeni sorunun yanıtı:

filename= ‘video1.mp4’;
mov=VideoReader(filename);
artis=5;
rEski=zeros(mov.Height,mov.Width);%rEski boş olarak açılıyor.
rEski=uint8(rEski);
for k=1:artis:mov.NumberOfFrames; %5 çerçeve atlayarak toplam çerçeve sayısına kadar
r=read(mov,k);
r=rgb2gray(r);
rYeni=bitand(rEski,r);
rYeni=imresize(rYeni,0.5);
figure(1);
imshow(rYeni);
rEski=r;%mevcut çerçeve  eski çerçeve yani rEski yapılıyor.
end

Daha önceki sorular:

1.) Cameraman.tif resminin Canny ve Prewitt yöntemleriyle kenarlarını çıkartınız. Sonrasında kenar görüntülerinin farkını alarak yeni görüntüyü camereman2.tif olarak hard diske kaydediniz. Kenarı çıkarılmış her iki görüntüyü ve fark görüntüyü 1×3’lük bir subplot figürü altında görüntüleyiniz.

2.) Aşağıdaki resimdeki parmak izi görüntüsünü netleştirecek işlemleri yapınız.

3.) Verilen bir resimde belirli bir (x,y) koordinatından başlayarak belirli bir karesel alanın histogramını eşitleyen fonksiyonu yazınız. Sonuçta aşağıdaki gibi bir görüntü oluşmalıdır.

Komut:

>> fonkAdi(z,x,y,a)

Görüntü:

 

Yanıtlar:

1)

t=imread(‘cameraman.tif’);
canny=edge(t,’canny’); % canny yöntemi ile kenar cıkartması yaptık.
subplot(1,3,1) % resmi 1x3lük tabloda 1. bölgede gösterdik.
imshow(canny)
title(‘Canny Görüntü’) % gösterilen resmi belirtmek için üzerine Canny Görüntü yazmasını istedik.
prwt=edge(t,’prewitt’); % şimdi resmi prewitt yöntemi ile kenar çıkartması yapıyoruz.
subplot(1,3,2)
imshow(prwt)
title(‘Prewitt Görüntü’)
fark=imsubtract(canny,prwt); % canny görüntüsünden prwt görüntü farkını alıyoruz.
imwrite(fark,’cameraman2.tif’); %oluşan fark resmini cameraman2.tif olarak kaydettik.
subplot(1,3,3)
imshow(fark)
title(‘Fark Görüntü’)

2. sorunun yanıtı:

clc;clear;close all;
a=imread(‘parmakizi.png’);
subplot(1,2,1)
imshow(a);
title(‘Orjinal goruntu’);
a=rgb2gray(a);
a1=a>20;
figure;
imshow(a1);
se=strel(‘disk’,2);
b=imerode(a1,se);
b=bwareaopen(b,10);
figure;
imshow(b);
se1=strel(‘line’,5,1);
c=imdilate(b,se1);
figure;
imshow(c)

3. sorunun yanıtı:

function y=blokHistHesapla(x,xbasla,ybasla,boyut)
if size(x,3)>1 %görüntü rgb mi yoksa gri seviye mi diye kontrol ediliyor.
x=rgb2gray(x);
end
%yerinden çıkartılan parça z’dir.
for i=xbasla:xbasla+boyut
for j=ybasla:ybasla+boyut
z(i,j)=x(i,j);
end
end
figure;
subplot(1,2,1);
histogram(z,’BinWidth’,1);
title(‘İlk Durum’);
z=histeq(z);%z’nin histogramı eşitlendi.
subplot(1,2,2);
histogram(z,’BinWidth’,1);
title(‘Histogram Eşitleme Sonrası’);
%histogramı eşitlenen z eski yerine konuluyor.
for i=xbasla:xbasla+boyut
for j=ybasla:ybasla+boyut
x(i,j)=z(i,j);
end
end
y=x;
end