views:

203

answers:

3

So I have Image like this

 CG generated bathroom

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

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=)

+2  A: 

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

Jacob
Hough Transform is quite slow... And I have to work with 2k live video... Looking into Radon now...
Blender
..not if you tune it to your particular problem. You can pre-calculate some of the math tables to improve performance if you reduce the accuracy a little
JBRWilkinson
A: 

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

andand
No need to convert to YCbCr if all you are after is the intensity value.
ergosys
+3  A: 

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://hdebruijn.soo.dto.tudelft.nl/jaar2006/alders.htm
TheMachineCharmer