Is there any super fast algorithm for finding LINES on picture?

时光怂恿深爱的人放手 提交于 2019-11-27 21:14:07
Pratik Deoghare

You need to use sophisticated image processing methods such as Canny Edge Detection, Marr-Hildreth edge detection, Gaussian Filtering and Hough Transform etc.

But existence of "super fast" method is highly unlikely.

Minimum complexity of most of the image processing algorithms is at least O(N^2).

By "super fast" I mean at most O(1) ;)

Some links that might help:

  1. http://www.sci.utah.edu/~cscheid/spr05/imageprocessing/project4/
  2. http://www.contrib.andrew.cmu.edu/~suppe/mobot/
  3. http://www.dunwich.org/baptiste/sic/ecms/ecpublis.html#2
  4. http://wayback.archive.org/web/20090304153603/http://hdebruijn.soo.dto.tudelft.nl/jaar2006/alders.htm

I think you need a Hough transform or a Radon transform. Read the articles I've linked and feel free to ask any questions :)

Consider the contour dots algorithm described in http://outliner.codeplex.com/ It will produce the vector-described edges in the form of Bezier curves organized in strokes. You need some effort to choose the most straigh strokes (the end points are ready to use). This algoritms is quite fast but not super duper.

I don't know how well it will work in your application, but you might try some sort of edge detection approach. Not sure how to convert those edges into vectors, if that's what you're looking for, but this might be a place to start. Anyway, some of the edge detection algorithms (e.g. the Discrete Laplace Operator) are pretty quick on moderm computing architectures.

Oh, and if you do that, you probably want to convert the image to YCbCr and just use the luma (Y) component. That's also a fast operation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!