Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

So I have Image like this

 CG generated bathroom
(source: de-viz.ru)

I want to get something like this (I hevent drawn all lines I want but I hope you can get my idea)

 Black & White CG generated bathroom with some red lines  between tiles
(source: narod.ru)

I need some super fast algorithm for finding all straight lines on it. I want to give to algorithm parameters like min length and max line distortion. I want to get relative to picture pixel coords start and end points of lines.

So on this picture to find all lines between tiles and thouse 2 black lines on top.

So I need algorithm for super fast finding straight lines of different colors on picture.

Is there any such algorithm? (super duper fast=)

like image 460
Rella Avatar asked Apr 08 '10 00:04

Rella


People also ask

What algorithm is used to detect the lines?

Thus, the Hough Transform algorithm detects lines by finding the (ρ, θ) pairs that have a number of intersections larger than a certain threshold.

How does Hough transform Detect lines?

The Hough transform takes a binary edge map as input and attempts to locate edges placed as straight lines. The idea of the Hough transform is, that every edge point in the edge map is transformed to all possible lines that could pass through that point.

How do you detect lines?

To detect the lines present in an image, we have to read the image using the imread() function and convert it into grayscale if it's not in grayscale already. After that, we have to find the edges of the given image using the Canny() function of OpenCV. The first argument of the Canny() function is the given image.


1 Answers

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
like image 79
Pratik Deoghare Avatar answered Oct 06 '22 04:10

Pratik Deoghare