Doç. Dr. GÜRAY SONUGÜR

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

2018 – Görüntü İşleme Örnek Soru-2

cerceveYap() isimli bir fonksiyon yazılacaktır. Bu fonksiyon x,y koordinatları verilen bir pikselin etrafına yeşil renkli kare bir çerçeve çizecektir. Çerçevenin boyutu da fonksiyona parametre olarak girilecektir.

Fonksiyon parametreleri:

  1. Çerçeve çizilecek pikselin x koordinatı
  2. Çerçeve çizilecek pikselin y koordinatı
  3. Çerçevenin boyutu (Tek sayı olması zorunludur.)
  4. Görüntü dosyası

Çıktı: Sonuçta oluşan görüntü olacaktır.

Örnek kullanım:

>>q=imread(‘headquarters-2.jpg’);

>>y=cerceveYap(40,40,9,q);

>>imshow(y);

Yanıt:

function y=cerceveYap(X_odak,Y_odak,cerceveBoyut,goruntu)
%Bu fonksiyon verilen bir resmin odak koordinatları etrafında verilen
%boyutlarda bir çerçeve çizer.
SinirX=X_odak+(cerceveBoyut-1)/2;
SinirY=Y_odak+(cerceveBoyut-1)/2;
%çerçeve eğer resmin dışına taşıyorsa ya da çerçeve boyutu tek sayı değilse işlem
%yapılmayacak şekilde if cümlesi düzenlendi.
if rem(cerceveBoyut,2)~=0 && SinirX<size(goruntu,2) && SinirY<size(goruntu,1)
baslaX=X_odak-(cerceveBoyut-1)/2;
baslaY=Y_odak-(cerceveBoyut-1)/2;

goruntu(baslaY,baslaX:baslaX+cerceveBoyut,1)=0;
goruntu(baslaY,baslaX:baslaX+cerceveBoyut,2)=255;
goruntu(baslaY,baslaX:baslaX+cerceveBoyut,3)=0;

goruntu(baslaY:baslaY+cerceveBoyut,baslaX,1)=0;
goruntu(baslaY:baslaY+cerceveBoyut,baslaX,2)=255;
goruntu(baslaY:baslaY+cerceveBoyut,baslaX,3)=0;

goruntu(baslaY:baslaY+cerceveBoyut,baslaX+cerceveBoyut,1)=0;
goruntu(baslaY:baslaY+cerceveBoyut,baslaX+cerceveBoyut,2)=255;
goruntu(baslaY:baslaY+cerceveBoyut,baslaX+cerceveBoyut,3)=0;

goruntu(baslaY+cerceveBoyut,baslaX:baslaX+cerceveBoyut,1)=0;
goruntu(baslaY+cerceveBoyut,baslaX:baslaX+cerceveBoyut,2)=255;
goruntu(baslaY+cerceveBoyut,baslaX:baslaX+cerceveBoyut,3)=0;

y=goruntu;

else
fprintf(‘Cerceve Boyutu tek sayı olmalıdır ya da resim sınırları aşıldı.\n’)
end

end