Vous êtes sur la page 1sur 7

FINAL PROJECT REPORT

IMAGE PROCESSING : FEATURE EXTRACTION

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)

INTRODUCTION & PROBLEM DEFINITION


Image processing is the field of signal processing where both the input and output signals are images. Images can be thought of as two-dimensional signals via a matrix representation, and image processing can be understood as applying standard signal processing techniques to two-dimensional signals. It is a very important subject, and finds applications in such fields as photography, satellite imaging, medical imaging, and image compression, just to name a few. Feature extraction is an essential pre-processing step to pattern recognition and machine learning problems. It involves simplifying the amount of resources required to describe a large set of data accurately. When performing analysis of complex data, one of the major problems stems from the number of variables involved. Feature extraction is a general term for methods of constructing combinations of the variables to get around these problems while still describing the data with sufficient accuracy. Aim to study, implement and compare various low-level and shape based algorithms on image processing and to provide a user-friendly Graphical Interface for the same. The following Feature Extraction techniques were implemented Edge Detection: Sobels algorithm Cannys algorithm Circle Detection: Hough Transform Line Detection: Hough Transform Corner Detection: Trajkovics 8-neighbour algorithm

SOLUTION DESIGN AND IMPLEMENTATION


Our project methodology includes the following: Using Java/Swing to provide a user-friendly interface enabling him/her to observe the effects of changing thresholds. Intelligently creating a class structure to enhance code modularity. Implementing particular feature extraction techniques and comparing them.

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.

RESULTS AND ANALYSIS

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.

GIVEN SOME MORE TIME


Given one more month we would first of all try to improve the algorithms so that they are able to handle larger images. Furthermore we would extend the project to include generalized curve detection using generalized versions of Hough transform and some more shape based feature extraction techniques.

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/

Vous aimerez peut-être aussi