Dr. GÜRAY SONUGÜR

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

Görüntü İşleme Vize Soruları ve Yanıtları

Soru 1:

Yanıt:

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.

Denklem-1

Denklem-2

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