Documente Academic
Documente Profesional
Documente Cultură
COMPUTER SCIENCE AND ENGINEERING DEPARTMENT IIT BOMBAY CS293 DATA STRUCTURES AND ALGORITHMS PROF G. SIVAKUMAR
Submitted By: NISARG SHAH (07005001) SIDDHARTH DHAKAD (07005002) CHIRAG SETHI (07005022)
CLASS PICTURE This class has a Buffered Image as a class member variable and provides various image manipulation and handling procedures. Using them we can extract complete picture information into 2d,1d arrays, get and update pixel data, crop images and make them gray scaled (using a standard percentage distribution amongst the 3(R,G,B) components 30% red, 59% green, 11% blue). CLASS CONVOLUTION This class takes as input a kernel to mask an image and returns the modified picture as an object of the picture class. CLASS FILTER Given as input a function this class evaluates a 2D kernel with normalized integer entries which models the operation of the function on the image considering as a function in x and y. CLASS SOBEL This class takes as input an image grayscales it and applies the Sobel kernel with the help of the convolution class.
The Sobel operator consists of 2 kernels which respond to intensity variations along the x and y directions and then uses their magnitude as a measure. It then with the help of the provided threshold decides which pixels are actually edges and which arent. CLASS CANNY This class takes as input the image grayscales it. To remove the noise it uses the Gaussian Blur which smoothes the image. Then it uses the Sobel operator to find the edges. This is followed by Non-Maximal suppression which helps in thinning the edges and finally a path traversal algorithm lends continuity to the edges.
CLASS LINEHOUGH & CIRLEHOUGH This class finds the lines present in the given image, for it the algorithm is applied on the edge detected image as the lines are a part of the edges/boundaries. In this algorithm a line is mapped to a point in the 2D plane.
An edge pixel in the edge detected image can be a part of many lines and thus contributes to an increase in counter of many points in the plane. The maximum intensity points in the plane are the lines present in the image since every point on the line in the image contributes to the counter of the point in the plane. The class Circle Hough is basically an extension of the above concept to a 3D space with variables as the co-ordinates if the centre and the radius values. The user has the freedom to enter the radius range by himself which helps make the algorithm run faster as our domain reduces significantly. CLASS TRAJKOVIC This class finds corners in the given input image. It does so by applying the Trajkovics 8-Neighbours algorithm on every pixel of the input image which measures its simple and inter-pixel corner-ness and uses the given thresholds to finally consider the pixel as the part of a corner.
The images above and below compare the results of our implementation of the Canny and Sobel algorithms with the standard available outputs.
The images above and below compare the results of our implementation of the Hough Transform for line and circle detection respectively with the standard available output.
The image above compares the result of our implementation of the Trajkovics algorithm for corner detection with the standard available output.
REFERENCES
http://en.wikipedia.org/wiki/Feature_extraction http://www.cim.mcgill.ca/~dparks/CornerDetector/trajkovic8.htm http://en.wikipedia.org/wiki/Edge_detection http://matlabserver.cs.rug.nl/cannyedgedetectionweb/web/index.html http://en.wikipedia.org/wiki/Canny_edge_detection http://en.wikipedia.org/wiki/Segmentation_(image_processing) http://en.wikipedia.org/wiki/Hough_transform http://homepages.inf.ed.ac.uk/rbf/HIPR2/ http://users.ecs.soton.ac.uk/msn/book/new_demo/