6 04 2017
Görüntü İşleme Vize Soruları ve Yanıtları
Soru 1:
clear;
close all;
clc;
%Ötelenmiş Görüntü
x=imread(‘headquarters-2DD.jpg’);
%Orjinal Görüntü
yOrj=imread(‘headquarters-2.jpg’);
yOrj=rgb2gray(yOrj);
subplot(1,3,1)
imshow(yOrj);
title(‘Orjinal resim’);
%iki imge arasındaki farkları bulmak için imgeler birbirlerinden
%çıkartılmalıdır. Ancak çıkartmanın doğru sonuç vermesi için iki imge
%birbirine hizalı olmalıdır. Hizalama için bu yanıtda ikinci resim birinci
%resim hizasına çekilmiştir.
y=uint8(zeros(size(x))); %Geriye çekilmiş resim için sıfırlardan oluşan boş bir matris %açılıyor.
%geriye çekme işlemi yapılıyor. i ve j’nin başlangıç değerlerine dikkat ediniz.
for i=16:size(x,1)
for j=11:size(x,2)
y(i-15,j-10)=x(i,j);
end
end
subplot(1,3,2);
imshow(y)
title(‘Eski Haline Getirilnmiş Resim’);
% İki resim arasındaki fark alınıyor.
fark=imsubtract(y,yOrj);
subplot(1,3,3);
imshow(fark);
title(‘Fark Resim’);
Ekran çıktıları:
Soru 2:
[0..1] aralığında normalizasyon formülü Denklem 1’de verilmiştir. [A1..A2] aralığında normalizasyon formülü ise Denklem 2’de verilmiştir. Buna göre;
a) Aralık normalizasyonu yapan bir fonksiyon yazınız.
b)Bu fonksiyonu kullanarak ‘Headquarters-2K.png’ imgesi üzerinde
i) R kanalı piksellerini [100..180] aralığına
ii) G kanalı piksellerini [0..255] aralığına
iii) B kanalı piksellerini [30 .. 130] aralığına normalize ediniz ve görüntüyü tekrar oluşturunuz.
Her bir kanalın histogramlarını (BinWidth=1) çıkartıp tek bir figür penceresinde (subplot komutu ile) gösteriniz ve maksimum – minimum değerlerini ekrana yazdırınız.
a) Aralık normalizasyonu yapan fonksiyon
function y = Normallestir( alt,ust,x )
%Bu fonksiyon parametre olarak giren görüntü matrislerini
%[alt,ust] aralığına normalleştirir.
x=double(x); %matematiksel işlem için double yapıldı.
y=round((((x-min(x(:))).*(ust-alt))/(max(x(:))-min(x(:))))+alt);
y=uint8(y); % görüntüye çevirmek için tekarar uint8’e dönüştürüldü.
end
b) Yanıt:
clc; clear; close all
%görüntü yüklendi.
x=imread(‘headquarters-2K.png’);
%yazılan “Normalleştir” fonksiyonu kullanılmaya başlandı.
R=Normallestir(100,180,x(:,:,1)); %R kanalı 100-180 aralığına normalize edildi.
G=Normallestir(0,255,x(:,:,2));%G kanalı 0-255 aralığına normalize edildi.
B=Normallestir(30,130,x(:,:,3));%B kanalı 30-130 aralığına normalize edildi.
y=cat(3,R,G,B); %normalize edilen R, G, B kanalları tekrar birleştiriliyor.
figure
imshow(y);
figure
subplot(1,3,1);
% R kanalı histogramı alınıyor. Değerler incelendiğinde (100-180)
% aralığında olmalı.
hR=histogram(R,’BinWidth’,1);
[maxR,minR]=max(hR.Values);
disp([maxR,minR]);
subplot(1,3,2);
% G kanalı histogramı alınıyor. Değerler incelendiğinde (0-255)
% aralığında olmalı.
hG=histogram(G,’BinWidth’,1);
[maxG,minG]=max(hG.Values);
disp([maxG,minG]);
subplot(1,3,3);
% B kanalı histogramı alınıyor. Değerler incelendiğinde (30-130)
% aralığında olmalı.
hB=histogram(B,’BinWidth’,1);
[maxB,minB]=max(hB.Values);
disp([maxB,minB]);
Program Çıktıları:
Maksimum ve minimum histogram değerleri
2934 8
1628 13
3221 4
Birleştirilmiş görüntü:
Histogram Görüntüleri
Soru 3:
Bu soruyu ters matris kullanarak çözebiliriz.
% 4*a-b+2.2*c =12.6000 + 1.8000i;
% 1.2*a+3*b-2*c =-10.8000 + 3.2000i;
% -2*a-1.5*b+c =4.0000 – 3.0000i;
A=[4 -1 2.2;1.2 3 -2;-2 -1.5 1]; %Katsayı matrisi
B=[12.6000 + 1.8000i;-10.8000 + 3.2000i;4.0000 – 3.0000i]; %sonuç matrisi
C=inv(A)*B
A =
4.0000 -1.0000 2.2000
1.2000 3.0000 -2.0000
-2.0000 -1.5000 1.0000
B =
12.6000 + 1.8000i
-10.8000 + 3.2000i
4.0000 – 3.0000i
C = %sonuç
1.0000 + 1.0000i
-2.0000 + 0.0000i
3.0000 – 1.0000i
Görüntü İşleme Örnek Sorular -3 Görüntü İşleme Vize Sınavı Hakkında