Α Α Α Η Assignment 1 Ο Α Α ή ς ο ά ς (mth76@edu.teicrete.gr) ι ό αος α ά ς (mth75@edu.teicrete.gr) Π.Α έ α Π ος Α α ής Page1
Contents Assignment 1... 3 Exercise 1... 3 ι ή Α ά... 3 φα ο ές Α ο έ α α... 4 Exercise 2... 8 ι ή Α ά... 8 φα ο ές Α ο έ α α... 9 Exercise 3... 12 ι ή Α ά... 12 Ά a. φα ο ές Α ο έ α α... 14 Ά b. φα ο ές Α ο έ α α... 14 Ά c. Α ά ο αθ α ι ού ο έ ο ο ό α α... 15 ιβ ιο αφι ή Α αφο ά:... 16 Page2
Assignment 1 Exercise 1 Implement a function myhist that takes as input arguments a uint8 grayscale image (0255) and the number of bins and returns the corresponding image histogram. The function call should be:h = my ist(i,n)where I is the input image, n the number of bins and H the histogram (n elements vector).to display the histogram you can use the stem function. To verify your results, compare with the builtinmatlab function imhist. εω Έ ας ό ος α ιθ ό pixel 255). Π οφα ώς, ι ό ας. Ο ύ ος ο ι ο ι αφής ιας ι ό ας ί αι ο ι ό α α, ο ο οίο α ι ο ί ι ο ο έ ο ι έ α ια ή α α ι ό ας 9, 10 ο άθ οι α ι ώ ο ι ο ά α ος ί αι ο α ιθ ός pi el ς ά α ος ιας ι ό ας ια ά Ό ο H i ί αι o α ιθ ός pi el Α ά ο έ ο ο ο αθ α ι ού ς ι ό ας ό α Έ : s, ο ιά α ιά α ς ς ι ό ας. p, ο ο ι ός α ιθ ός pi el ς ι ό ας., o α ιθ ός ια ά ο ι ο ά α ος. st, ο ύ ος ι ώ ο άθ ια ή α ος. k, ο ής pi el. ά ι α ό έ ς p. l, ο ής ς ι ό ας. ά ια ό έ ς th, θέ ο ι έ ο ιά α ο ι ό α ο l αι ο st αι αβά αι α ό έ ς. α ά α ός αίο ια ή α ος ί αι: M N ί αι: αβ ή i. α. α. ί αι α έ αβ ήα ό Page3
ά ά ο = st*(th1) Ά ά ο = st*th ύο οι α α ά έ ις: np = s(1)*s(2), ιό ι ι ό α ί αι ο θο ώ ια st = /, ιό ι ίο α ια ή α α φ th = (round(l/st. +, ιό ι ο rou d l/st. l/st, ο ο οίο α ά ι ό α ο l α ά ι ιά ο ίθ αι ο +. Έ ι, ώ ας ό α α pi el k= : p, ώ έ ο ας άθ φο ά άθ ι ό α α ό ιθ ο ο ι ά αι. θή έ ο ια ά ί αι: ια ά ις s, s ι ό ας ια ή α α. ι έφ ι ο α έ αιο έ ος ς ιαί ς α ι ώ ας α ό ο, ι α ό αι ας ό ς ις ι ό ς l= : οιο ιά α α ή ι φ ιά ο αι ο if (I(k)>=st*(th1) && I(k)<st*th && I(k)==l), H(th)=H(th)+1; end έ : H(th)=H(th)+1; ά ι άθ θέ ο ι ο ά α ος ό ς ι ίς θή ς ά ο. ια α ύ ο ι ή α ι ό ι ιο ού ια ί α ά α ό ο ι ό α α ό ς ις ι ό ς 255) ί ς ις α ή ις get, set ο ο οιού ο ς ά ο ς αι θέ ο ο figure. γ ς ε ώ ο ό α α e er ise. ιό ο ς ις ι ό ς: a era.tif αι ar ara.tif ια ις ι ές: =,,. A1) cameraman.tif, n=4 Page4
1) cameraman.tif, n=40 1) cameraman.tif, n=128 1) cameraman.tif, n=256 Page5
Α2) barbara.tif, n=4 2) barbara.tif, n=40 2) barbara.tif, n=128 Page6
2) barbara.tif, n=256 Πα α ή ις: έ ο ας ι ο ά α ος, α α ού ο α ιθ ό pi el αι ό ι α ί ο αι ό ς ις ο ύ ο ο ι ώ ις. οι ί ο Page7
Exercise 2 Implement a function mynormalize that attempts to normalize a uint8 grayscale image to the interval 0 255. For the normalization you should use the minmax intensity values of the input image to find the appropriate linear transformation. The function call should be: In = myνormalize(i); where Ι is the input image In is the output normalized image. Apply your function in several images (3 4) including under and overexposed images and comment on the results. Additionally present the image histograms before and after the normalization. εω ά ο ο ού ο οί ύ οι φια ώ ι ό α ά ο ι ές α ό έ ς.,έ ας α ό α ούς ί αι αι α Gra s ale ό ο Α ά ο αθ α ι ού ο έ ο ο ό α α Έ ι ό α pi el. άθ ι ό α ι ύ ι: <=I<=. ια α α ο ι ο οι θ ί οι ό ια ί ό α α ι ό α α ι ό έ ι ο i αβ θ ί, ο I a αι ό ς οι ι ό ς α α ο ο θήο έ : (1) In = a*i+b, ό ο I Έ ι ια I=I i α ό α ο ι ο οι έ ο έ ι ό α α. : (2) 0=a*Imin+b Page8
ια I=I a (3) 255=a*Imax+b α I a αι I i ο ού α ο ιο ι ού α ό ις α ί οι ς α ή ις ο Matla max(i), min(i). ι ύο ας ο ύ α αι β ί ο : a=255/(imaximin), b=255*imin/(imaximin) Ά α α ο ι ο οι έ έ φ α ο θα ι ο οι θ ί ο α ό ιθ ο ί αι: In = 255*I/(ImaxImin) 255*Imin/(ImaxImin) γ ς ε φα ό ο ά Charalambos_Dark.jpg A) ια ο Nor alize I ις ι ό ς: a era a.tif αι a era a : Page9
ια ο α ά α ο, ο ο οίο φ ο αφία αβή ό οά ι Page10
ια ο ς ή ς Pipes Πα α ή ις: ο a era a α θ ι ή φ ο αφία, ό ς αι ο α ί οι ο ι ό α α ί αι ό ό οια. Α ό ί αι, ιό ι φ ο αφία α ή ιέ ι αι ού ς αι ές ιο ές, ο αί ι ό ι ί αι ή ό α ο ι ο οι έ. Οι φ ο αφί ς Charala os_dark.jpg αι Pipes.jpg οι ο οί ς αβή α οά ι ιέ ο ά pi el. ι α ό α ί οι ς α ο ι ο οι έ ς φαί ο αι α ά ιο φ ι ές αι ο ι ό α ά ο ς ί αι α ο ι έ ο ος α ιά. Page11
Exercise 3 (a) Implement a function that takes as inputs (i) the focal length of the camera f, (ii) the image dimensions in pixels im_size(width,height), and (iii) a vector P representing a 3d point (X,Y,Z) and returns: The image coordinates of the point (u,v) as a 2d vector p. A variable valid taking the value 1 if the point is within the image and 0 otherwise. The function call should be: [p, valid] = myproject(f,im_size,p) Assume that the optical center of the camera is at the center of the image.apply the function to calculate the image coordinates of the 3d points of the file <3dpoints_a.mat>. Try different f and im_size values and comment on how these values influence the image coordinates of the same 3d points. (b) Implement a function that modifies the previous one so that instead of a single 3d point it takes as input n 3d points as a matrix P(3*n) (each column of the matrix represents the coordinates (X,Y,Z) of a point). The function should output a matrix p(2*n) with the image coordinates of these points and a vector valid(1*n). The function call should be: [p, valid] = myprojectm(f,im_size,p) Apply the function using a matrix containing some 3d points. (c) Load the 3d points P from <3dpoints_b.mat, 3dpoints_c.mat>and project them in the image using myprojectm. Visualize these points. For the visualization you could create a uint8 matrix containing zeros and with dimensions equal to im_size and display in that matrix the projected points by giving the value 255 to the corresponding pixels. Display that matrix using imshow. Try to enhance the visualization by replacing the 255 value with a value that depends on of each 3d point. Present the obtained results using several f and im_size values. εω οβο ι ή ία ι ύ ι ια έ ο έ α ί αι ό ι οι α ές α α έ ο έ θος α ι ι έ ά ο αι. Οι ι ιό ς οβο ής ί αι : 1. Many to One (*) 2. Points to Points 3. Lines to Lines (*) 4. Planes to Planes. * Ο οιο ή ο.* α ή ο Οι ο ο ίς α α ς D οβο ής ια ά ις. ο ές ώ οι ί ς, ο ή α αι ο ίο οβ θ ί ο ί ιο ίο ς ι ό ας ά αι α ό α. ά ι α ό ο έ ο ς ι ό ας οβά αι ίο. α έ ς βο θά ί οβο ής Page12
Page13
Ο ίο α uo, vo ς ίο βά ς α έ,ό α, θ ί αι ό ι β ί αι ο ο ι ό έ ο. ο f ο ί αι ς ια ή α ό α fo al le gth αι ί αι ά ας α ό ο ο ι ό έ ο. Ά 3a. γ ς ε ο ίο α ό α ο α έ ς έ ο ς ία, ώ ια ι ό α, f=50: ο ίο P0=(0,0,10) ί ι p0=(0,0), valid=1 ο ίο P1=(10,0,10) ί ι p1=(50,0), valid=1 ο ίο P2=(0,10,10) ί ι p2=(0,50), valid=1 ο ίο P3=(10,10,10) ί ι p3=(50,50), valid=1 ια ι ό α, f=200: ο ίο P0=(0,0,10) ί ι p0=(0,0), valid=1 ο ίο P1=(10,0,10) ί ι p1=(200,0), valid=0 ο ίο P2=(0,10,10) ί ι p2=(0,200), valid=0 ο ίο P3=(10,10,10) ί ι p3=(200,200), valid=0 ια ι ό α 300,300 f=200: ο ίο P0=(0,0,10) ί ι p0=(0,0), valid=1 ο ίο P1=(10,0,10) ί ι p1=(200,0), valid=1 ο ίο P2=(0,10,10) ί ι p2=(0,200), valid=1 ο ίο P3=(10,10,10) ί ι p3=(200,200), valid=1 Πα α ή ις: α ία,, = Οι ι ό ς ά Οι ά ς ι α ές ά οf Ά 3b.,, α ι ο ί ο αι ο x,y)=(0,0). ς ια ά ις ί ο α α ι ο ίο ιό α ό focal length (f) ί ο α α ι ο ίο ιό ά ο α ύ ο zoom, α ά ά ο ία. γ ς ε ία. α Παί ο ί α α: P = [X;Y;Z] = [300 300 240 1000; 170 170 130 1000; 90 500 1100 500]; αι αί α ο έ α α: p= 230.6667 94.0000 74.9091 164.0000 222.4444 145.0000 133.9091 228.0000 αι valid= 1 0 0 1 Page14
Ά ια 3c. α ά ο α ο ίθ ο α ο ο θού α βή α α: γ 1. ή α ι ώ ο έ 2. ιο ία ο I tristi Matri K 3. α ο ή ί Ο ο ίς α έ ς ά toho 4. Π οβο ή ί ι ό α έ ph=k*ph 5. α ο ή α ια ές α έ ς ά fro Ho 6. ια ό α α ία έ ος α β ί ο αι έα ι ό α. 7. ια α ία ός ς ι ό ας α ι οι ί αι ι ό ά ο ς. Α α ά θέ ο α ού οια ί αι α ά α ία ο ς βά ο ι ό α.α θέ ο αέ ο α ύ ο ι ή α ι ό ι, ι ό ά ο ς έ ι α ί αι α ά ο ο, ύ φ α ο ύ ο: I(xcp,ycp)=a*Z(k)+b; αι b=a*zmin; a=255/(zmaxzmin); Ά ια α ια ο f c. φα ο ές Α ο ία dpoi ts_ ι έ έ α α αι ια f= ι ή έ οια ώ. ια α α ά ι ο ό zoo ία dpoi ts_ αι ια f=. ι ό α. Page15
γ : 1. Hartley 6.1 2. Szeliski 2.1.5, 2.2, 2.3 3. Lectures Alexandros Makris Page16