Goruntu Isleme

  • 1,301 views
Uploaded on

computer vision, image processing, goruntu isleme, bilgisayarli gorme

computer vision, image processing, goruntu isleme, bilgisayarli gorme

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,301
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
40
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Sevdanur GENC - 135105008 Computer Vision Yalova Universitesi Fen Bilimleri Enstitusu Bilgisayar Muhendisligi Ana Bilim Dali Bilgisayarli Gorme Dersi Sevdanur GENC - 135105008 1
  • 2. Sevdanur GENC - 135105008 Computer Vision Bilgisayarli Gorme Vize Calisma Sorulari Ve Cevaplari 1) Aşağıdaki gibi f imgesi verilmiş olsun. Bu imgenin m maskesi ile konvolusyon (iki boyutta filtre işlemi) yapıldığını ve sonucun da g imgesinde saklandığını düşünelim. Buna göre g9, g10,g32 ve g42 ‘yi hesaplayınız? g9 = f1.m1 + f2.m2 + f3.m3 + f8.m4 + f9.m5 + f10.m6 + f11.m7 + f12.m8 + f13.m9 g10 = f2.m1 + f3.m2 + f4.m3 + f9.m4 + f10.m5 + f11.m6 + f16.m7 + f17.m8 + f18.m9 g32 = f24.m1 + f25.m2 + f26.m3 + f31.m4 + f32.m5 + f33.m6 + f38.m7 + f39.m8 + f40.m9 g42 = f34.m1 + f35.m2 + 0.m3 + f41.m4 + f42.m5 + 0.m6 + f48.m7 + f49.m8 + 0.m9 2) f*m (* konvolüsyon işaretidir) işleminin algoritmasını Matlab dilinde yazınız. Kaç for döngüsü gerekiyor ? 4 nested for loops gerekiyor. 2
  • 3. Sevdanur GENC - 135105008 Computer Vision clc; clear all; close all; x = [1 2 3; 4 5 6; 7 8 9]; h = [-1 -2 -1; 0 0 0; 1 2 1]; hCenterX = hCols / 2; hCenterY = hRows / 2; for i=0:rows for j=0:cols sum = 0; for m=0:hRows mn = hRows - 1 - m; for n=0:hCols nn = hCols - 1 - n; ii = i + (m - hCenterX); jj = j + (n - hCenterY); if (ii>=0 & ii<rows & jj>=0 & jj<cols) out[i][j] += in[ii][jj] * kernel[nm][nn]; end end end end 3) Aşağıdaki 8x8 resmine göre : a) Yoğunluk histogramını çiziniz. b) Kümülatif yoğunluk histogramını çiziniz c) Bu grafiklere göre histogram eşitleme yapıldığında 2 ile gösterilen pikseller azalır mı artar mı? d) Histogram eşitleme yapınız. Eşitlenmiş imge matrisini elde ediniz. (Dersteki olasılık formülü ile) 3
  • 4. Sevdanur GENC - 135105008 Computer Vision a) 0 -> 16, 1->9, 2->11, 4->13, 8->15 b) 0 -> 16, 1->25, 2->36, 4->49, 8->64 c) 2'de 11 degeri varken histogram esitlemesi yapildiginda yeni degeri artik 16 olacaktir. d) p(0) = 16 / 64 = 0.25 p(1) = 25 / 64 = 0.14 p(2) = 36 / 64 = 0.17 p(4) = 49 / 64 = 0.20 p(8) = 64 / 64 = 0.23 T(0) = round 8 * p(0) = 8 * 0.25 = 2 T(1) = round 8 * p(0) + p(1) = 8 * (0.25 + 0.14) = 3 T(2) = round 8 * p(0) + p(1) + p(2) = 4 T(4) = round 8 * p(0) + p(1) + p(2) + p(4) = 5 T(8) = round 8 * p(0) + p(1) + p(2) + p(4) + p(8) = 8 2 2 2 2 3 4 5 8 2 2 2 2 3 4 5 8 2 2 2 2 3 4 5 8 2 2 2 2 3 4 5 8 3 3 3 3 3 4 5 8 4 4 4 4 4 4 4 5 8 5 5 5 5 5 5 5 8 8 8 8 8 8 8 8 8
  • 5. Sevdanur GENC - 135105008 Computer Vision 4) Üstteki resme gürültü binince alttaki resim oluştu. a)Temizleyecek bir filtre öneriniz. b) Çıkan sonuç matrisi nedir? a) Temizleyebilmek icin orjinal resimden gurultu resminin degerini cikarabiliriz. clc; clear all; close all; input = [ 0 0 0 0 1 2 4 8 0 0 0 0 1 2 4 8 0 0 0 0 1 2 4 8 0 0 0 0 1 2 4 8 1 1 1 1 1 2 4 8 2 2 2 2 2 2 4 8 4 4 4 4 4 4 4 8 8; 8; 8; 8; 8; 8; 8; 8]; output = [ 0 0 0 6 1 2 4 8 0 0 0 0 1 2 4 8 0 5 0 0 1 2 0 8 0 0 0 0 1 2 4 8 1 1 1 1 1 2 4 8 2 2 2 8 2 2 4 8 4 4 4 4 4 4 4 8 8; 8; 8; 8; 8; 1; 8; 8]; gurultu = output - input; 5
  • 6. Sevdanur GENC - 135105008 Computer Vision subplot(1,3,1), imshow(input), title('Orjinal Resim'); subplot(1,3,2), imshow(gurultu), title('Gurultulu'); subplot(1,3,3), imshow(output), title('Gurultulu Resim'); b) Cikan gurultu isimli matrisin degerleri; 5) Zincir kodu (8-li komşuluk ile) 076666553321212 olan bir nesnenin başlangıç noktasından ve dönmeden bağımsız (şekil numarası) numarasını bulunuz. Şeklini çiziniz. chain number ; 076666553321212 first difference ; 677000706077171 shape number ; 000706077171677 6) Genel Hough dönüşümü daire için yapılsaydı R-tablosu ne olurdu ? bulunuz. Q1 Q2 .... Qk (R1',a1') , (R1",a1") ..... (R2',a2') , (R2",a2") ..... .... (Rk',ak') , (Rk",ak") ..... Xc = x - r.CosQ Yc = y - r.SinQ 6
  • 7. Sevdanur GENC - 135105008 Computer Vision I. Referans nokta secilir, II. Sinir uzerindeki kenar noktalardan referans noktaya vektor cizilir. III. R-tablosunda gradyan acisina yonelik vektor bilgilerini tutariz. IV. R-tablosunda gradyan degerine karsilik birden fazla giris olabilir. 7) 8 komşuluğunu kullanarak aşağıdaki şeklin (medyal axis) iskeletini çıkarınız. 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 2 2 2 2 2 2 1 0 0 1 2 3 3 3 3 2 1 0 0 1 2 2 2 2 2 2 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 8) Doğru (D) ya da Yanlış (Y) seçeneklerinden biri ile parantezleri doldurunuz. a) Yandaki maske yatay kenarları bulmak içindir. ( ) b) Uzunluğu 20 ve 10 olan iki adet sonlu, ayrık sinyalin konvolusyonundaki sıfır olmayan elemanların sayısı 30’dur. ( ) c) Şekildeki histogram yüksek kontrastlı bir imgeye aittir. ( ) 7
  • 8. Sevdanur GENC - 135105008 Computer Vision d) Keskinleştirme maskesi ile filtreleme yüksek geçirgenli süzgeçleme(high pass ) tekniğidir. ( ) e) Medyan filtre konvolüsyonla yapılabilir ( ) A D (Yatay - Prewit) B Y C Y D D E D 9) Aşağıdaki resmin histogram eşitlenmiş halini bulunuz. Gri tonların 7’ye kadar gittiğini farzediniz. 0 9 1 6 2 4 3 1 p(0) = 9 / 25 = 0.36 p(1) = 6 / 25 = 0.24 p(2) = 4 / 25 = 0.16 p(3) = 1 / 25 = 0.04 p(4) = 4 / 25 = 0.16 p(5) = 1 / 25 = 0.04 p(6) = 0 / 25 = 0 p(7) = 0 / 25 = 0 4 4 5 1 6 0 7 0 T(0) = round 7 * 0.36 = 3 T(1) = round 7 * 0.6 = 4 T(2) = round 7 * 0.76 = 5 T(3) = round 7 * 0.8 = 6 T(4) = round 7 * 0.96 = 7 T(5) = round 7 * 1 = 7 T(6) = round 7 * 1 = 7 T(7) = round 7 * 1 = 7 10) Orijinal Lena resminin histogramı şu şekildedir. Ancak aşağıdaki 5 adet gri ton değiştirme T(x) fonksiyonları ile histgoramla oynanıyor. 8
  • 9. Sevdanur GENC - 135105008 A Computer Vision B C D E şu histogramlar elde ediliyorsa, hangi T (TA TB TC TD TE ) hangi histograma aittir (H1 H2 H3 H4 H5) bulunuz. 1 2 3 4 clear all; close all; clc; lena = imread('lenna.png'); lena = rgb2gray(lena); subplot(4,4,1), imshow(lena), title('orjinal resim'); subplot(4,4,2), imhist(lena), title('orjinal histogram'); 9 5
  • 10. Sevdanur GENC - 135105008 Computer Vision negative = imcomplement(lena); subplot(4,4,3), imshow(negative), title('negative resim'); subplot(4,4,4), imhist(negative), title('negative histogram'); gama1 = imadjust(lena, [], [], 0.04); subplot(4,4,5), imshow(gama1), title('Gama=0.04 resmi'); subplot(4,4,6), imhist(gama1), title('Gama=0.04 histogrami'); gama2 = imadjust(lena, [], [], 25.0); subplot(4,4,7), imshow(gama2), title('Gama=25.0 resmi'); subplot(4,4,8), imhist(gama2), title('Gama=25.0 histogrami'); lenna = im2double(lena); logarithmic = (1/log(1+255))*log(1+(lenna*255)); subplot(4,4,9), imshow(logarithmic), title('logarithmic resim'); subplot(4,4,10), imhist(logarithmic), title('logarithmic histogram'); inverse = 1-logarithmic; subplot(4,4,11), imshow(inverse), title('inverse logarithmic resim'); subplot(4,4,12), imhist(inverse), title('inverse logarithmic histogram'); T(1) H(5) T(2) H(2) T(3) H(4) T(4) H(3) T(5) H(1) 11) Aşağıdaki filtrelerin ne iş yaptığını söyleyiniz. Ayrıca bir resimle konvolüsyon yapıldığında hangisi en çok bulandırır? Hangisi en çok karanlık yapar ? Hangisi en parlak gösterir ? clc; clear all; close all; img = [145 23 67 98 88 46 56 68 0 0; 23 56 0 44 75 0 0 0 0 0; 42 67 23 23 66 54 0 45 0 0; 0 23 0 1 77 0 0 0 0 0; 0 0 0 98 1 0 0 0 0 0; 23 0 1 0 0 1 0 0 0 0; 11 1 23 1 34 0 1 45 0 0; 0 0 0 0 0 11 0 1 0 0; 11 0 0 0 0 1 1 1 0 0; 11 11 11 22 22 3 0 34 0 0]; element1 = [0.1 .1 .1; .1 .1 .1; .1 .1 .1]; newimg1 = conv2(img, element1); 10
  • 11. Sevdanur GENC - 135105008 Computer Vision element2 = [0 0 1; 0 -2 0; 1 0 0]; newimg2 = conv2(img, element2); element3 = [0 0.2 0; 0.2 0.4 0.2; 0 0.2 0]; newimg3 = conv2(img, element3); element4 = [0 -1 0; 0 3 0; 0 -1 0]; newimg4 = conv2(img, element4); subplot(1,5,1), subplot(1,5,2), subplot(1,5,3), subplot(1,5,4), subplot(1,5,5), imshow(img); imshow(newimg1); imshow(newimg2); imshow(newimg3); imshow(newimg4); a) Mean Filter; en cok bulaniklastirandir. b) Kenar bulma; en cok karanlik yapandir. c) Parlaklastirma yapar, en parlak gosterendir. d) Keskinlik saglar. 12) Aşağıdaki matlab kodu verilmiştir. Buna göre; a) Çıkan resimle(Iout = im_out) giren resim(Iin = im) arasındaki ilişkiyi anlatan denklemi yazınız. b) input-output eğrisini çiziniz. a) im_out = {im < 0,1 = > 1,1 | im>=0,1 = > 0,1} b) 11
  • 12. Sevdanur GENC - 135105008 Computer Vision clc; clear all; close all; im = imread('kompozit.tif'); im = double(im); im = im / max(max(im)); %% 0 <= im <= 1 im_out = (im < 0.1) + 0.1 * (im >= 0.1) ./ im; subplot(1,2,1), imshow(im); subplot(1,2,2), imshow(im_out); 13) Aşağıdaki resmi bölgelerine (segmentation) nasıl ayırırsınız ? Bir algoritma ve akış diyagramı veriniz. close all; clear all; clc; im = imread('cell.tif'); background = imopen(im, strel('disk',15)); im2 = im - background; level = graythresh(im2); bw = im2bw(im2, level); bw = bwareaopen(bw,50); subplot(1,3,1),imshow(im); subplot(1,3,2),imshow(im2); subplot(1,3,3),imshow(bw); 12
  • 13. Sevdanur GENC - 135105008 Computer Vision Resmi okuttuktan sonra, arka planda belirlemede kullanilan morfolojik acilis kullaniyorum. Olusturmus oldugum arkaplandan orjinal goruntuyu cikariyorum. Goruntu kontrastini arttiriyorum. Image'in esik goruntusunu olusturuyorum. Boylelikle goruntudeki nesneleri tanimlayabilir hale geliyoruz. 22) Aşağıdaki durumlar için bir doğrusal süzgeç maskesi öneriniz. a) Bölgenin ortalamasını alan - Smoothing Filtering b) Merkezdeki piksellere daha fazla ağırlık vererek ortalama alsın - Gaussian Filtering c) Fon ile arasındaki büyük contrast farkı olan pikselleri ortaya çıkarsın - Convulation d) dikey kenarları açığa çıkarsın - Canny e) Resmi keskinleştirsin - Laplacian f) Resmin belli bir kısmını tutarak keskinleştirme yapsın - Laplacian g) 5x5 boyutlarındaki içi boş kutuları bulsun - Haralick Mask 23) Aşağıdaki nesneleri iki kategoriye ayırma ihtiyacımız var. Delikli nesneler ve deliksiz nesneler diye iki kategorimiz var. Her iki kategorinin de nesnelerini ayırt edip bulma ve yerlerini de tayin etmeyi başaran bir algoritma yazınız. Akış diyagramı da ekleyebilirsiniz. Bu sayede robot ilgili nesneleri toplayıp iki farklı kutuya doldurabilir. 13
  • 14. Sevdanur GENC - 135105008 Computer Vision clear all; close all; clc; robot = imread('robot.png'); robotGray = rgb2gray(robot); robotThershold = im2bw(robotGray, graythresh(robotGray)); robotComplement = ~(robotThershold); totalObject = bwboundaries(robotThershold); holeObjects = bwboundaries(robotThershold, 'nohole'); imshow(robotThershold); text(10,10,strcat('color{green}Total Objects Found:',num2str(length(totalObject)))); text(10,20,strcat('color{green}NoHole Objects Found:',num2str(length(holeObjects)))); hold on 24) A resmi morfolojik bir işleme tabi tutulup B resmi üretiliyor. Bu esnada kullanılan yapı elemanı da 3x3 bir maskedir (S). Bu maske daire, kare, doğru olabilir ve bunun bir önemi yoksa şıklardan hangisi ile B üretilmiş olabilir. 14
  • 15. Sevdanur GENC - 135105008 Computer Vision C Sikkidir. clc; clear all; close all; im = imread('U.tif'); %%figure, imshow(im), title('orjinal imaj'); BW1 = edge(im2bw(im),'sobel'); se = strel('square', 1); erode = imerode(BW1, se); subplot(1,3,1), imshow(im), title('Orjinal imaj'); subplot(1,3,2), imshow(BW1), title('Sobel imaj'); subplot(1,3,3), imshow(erode), title('erode imaj'); 25 . Hough transform ile y  y 0  a ( x  x 0 ) 2 şeklindeki parabolaları yakalamak istiyoruz. Bir algoritma öneriniz. for all values of (x,y) if E(x,y) == 1 for all values of a between a_min and a_max for all values of x0 Compute a = (y - yo) / (x - x0)^2 Increment A(i,j,k) where (i,j,k) corresponds to the cell associated with (x0,y0,a) end end end end 15
  • 16. Sevdanur GENC - 135105008 Computer Vision 26. Herhangi bir şekle sahip nesnemiz var. Her kenar pikselindeki gradyan açısı aşağıdaki dizide verildiği gibidir. Nesnenin ağırlık merkezi ise * ile gösterilmiştir. Buna göre R-tablosunu oluşturunuz. r r r r r r r r r r r r r r r r r r r r r r r r r r Q Q11 Q12 Q15 Q16 Q17 Q21 Q23 Q24 Q27 Q32 Q37 Q42 Q47 Q52 Q57 Q61 Q67 Q71 Q75 Q76 Q77 Q81 Q82 Q83 Q84 Xc = Xi - r.Cosa Xc = Xi - r.Cos90 Xc = Xi - r.Cos45 Xc = Xi - r.Cos90 Xc = Xi - r.Cos90 Xc = Xi - r.Cos90 Xc = Xi - r.Cos180 Xc = Xi - r.Cos90 Xc = Xi - r.Cos135 Xc = Xi - r.Cos0 Xc = Xi - r.Cos225 Xc = Xi - r.Cos0 Xc = Xi - r.Cos180 Xc = Xi - r.Cos0 Xc = Xi - r.Cos180 Xc = Xi - r.Cos0 Xc = Xi - r.Cos135 Xc = Xi - r.Cos0 Xc = Xi - r.Cos180 Xc = Xi - r.Cos225 Xc = Xi - r.Cos270 Xc = Xi - r.Cos270 Xc = Xi - r.Cos180 Xc = Xi - r.Cos270 Xc = Xi - r.Cos270 Xc = Xi - r.Cos270 Yc = Yi - r.Sina Yc = Yi - r.Sin90 Yc = Yi - r.Sin45 Yc = Yi - r.Sin90 Yc = Yi - r.Sin90 Yc = Yi - r.Sin90 Yc = Yi - r.Sin180 Yc = Yi - r.Sin90 Yc = Yi - r.Sin135 Yc = Yi - r.Sin0 Yc = Yi - r.Sin225 Yc = Yi - r.Sin0 Yc = Yi - r.Sin180 Yc = Yi - r.Sin0 Yc = Yi - r.Sin180 Yc = Yi - r.Sin0 Yc = Yi - r.Sin135 Yc = Yi - r.Sin0 Yc = Yi - r.Sin180 Yc = Yi - r.Sin225 Yc = Yi - r.Sin270 Yc = Yi - r.Sin270 Yc = Yi - r.Sin180 Yc = Yi - r.Sin270 Yc = Yi - r.Sin270 Yc = Yi - r.Sin270 16