Download
cs 585 computational photography n.
Skip this Video
Loading SlideShow in 5 Seconds..
CS 585 Computational Photography PowerPoint Presentation
Download Presentation
CS 585 Computational Photography

CS 585 Computational Photography

151 Vues Download Presentation
Télécharger la présentation

CS 585 Computational Photography

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. CS 585 Computational Photography Nathan Jacobs

  2. Administrivia • project 1: due Tuesday before midnight

  3. Overview • point processing • morphological operations • more useful Matlab functions

  4. Point Processing • The simplest kind of range transformations are these independent of position x,y: g(x,y) = h(f(x,y)) • Important: unlike convolution/correlation, no looping over nearby pixels • Important: every pixel for himself – spatial information completely lost! • can’t blur • can’t compute derivatives

  5. Negative

  6. Basic Point Processing

  7. Power-law transformations

  8. Image Enhancement

  9. Camera Block Diagram Szeliski

  10. Contrast Stretching

  11. Image Histograms Which one is which? Cumulative Histograms

  12. Histogram Equalization

  13. How do you do this in Matlab? • negative image • power-law transformation • contrast stretching • histogram equalization imOut = 1 - imIn imOut = interp1([0 .25 .75 1], [0 .1 .9 1], imIn, 'linear') imOut = histeq(imIn, hgram) (can also use histogram, cumulative histogram, and contrast stretching)

  14. Limitations of Point Processing • Q: What happens if I reshuffle all pixels within the image? • A: It’s histogram won’t change. No point processing will be affected…

  15. Morphological Operation • What if your images are binary masks? • Binary image processing is a well-studied field, based on set theory, called Mathematical Morphology

  16. Preliminaries

  17. Preliminaries

  18. Dilation and Erosion • Two basic operations: • A is the image, B is the “structural element”, a mask akin to a kernel in convolution • Dilation : all shifts of B that have a non-empty overlap with A • Erosion : all shifts of B that are fully contained within A)

  19. Dilation

  20. Dilation

  21. Erosion

  22. Erosion Original image Eroded image

  23. Erosion Eroded once Eroded twice

  24. Opening and Closing • Opening : (erode, then dilate) • Closing : (dilate, then erode) • Prove to yourself that they are not the same thing. Play around with imdilate,imerodeand bwmorph in Matlab. • smoothes the contour of an object, breaks narrow isthmuses, and eliminates thin protrusions • smooth sections of contours but, as opposed to opening, it generally fuses narrow breaks and long thin gulfs, eliminates small holes, and fills gaps in the contour

  25. Opening and Closing

  26. Opening and Closing OPENING: The original image eroded twice and dilated twice (opened). Most noise is removed CLOSING: The original image dilated and then eroded. Most holes are filled.

  27. Boundary Extraction Difference between image and erosion by a 3x3 mask of ones im = ~imread('http://petticoatsandpistols.com/wp-content/uploads/2009/02/silhouette11.bmp') imshow(xor(im, imerode(im, true(3))))

  28. Connected Components im = ~~rgb2gray(im2double(imread('media/text.png'))); CC = bwlabel(im); figure; imagesc(CC) regions = regionprops(im); [regions.Area] % show area of each conn. component

  29. some usefulMatlab functions • linspace: make linearly spaced samples • sub2ind, ind2sub: from 1D to ND indexing • bwdist: computes distance from positives in a binary image • regionprops: compute properties of connected components • find: find non-zeros, (can also find first k or find last k) • repmat: replicate a matrix • reshape: reshape a matrix • interp1: many types of interpolation • ndgrid: make array of indices of pixels • zeros, ones, rand, randn, blkdiag: matrix construction http://home.online.no/~pjacklam/matlab/doc/mtt/index.html

  30. Conclusion • point processing • morphological operations

  31. Next Time