How can I detect basic 2D geometric shapes (e.g. square, triangle, circle) on a JPEG image?

starcodex picture starcodex · Aug 16, 2011 · Viewed 7.9k times · Source

After taking a picture, I'm trying to detect the shape of the object that is shot. What I'm looking for is similar to face detection, except I want the app to detect shapes instead of faces. I'm creating an Android app using Java and the android SDK. Any Ideas on what libraries or resources I can access to do this sort of thing?

Answer

yottamoto picture yottamoto · Aug 23, 2011

I'd use the edge detection filter in marvin processing. http://marvinproject.sourceforge.net/en/plugins/edgeDetector.html

Then go through the pixels, seach for dark pixels in the vicinity and store the lines you have found. Then you can check for intersections in the lines. Group intersecting lines together and check the angles of intersection. That should at least give you a starting point for polygons.