平面几何图形内的线检测

时间:2013-04-15 03:07:10

标签: image-processing computer-vision object-detection

我希望从给定的下图中获得什么 triangle

  1. A,B,C和D点的坐标,使A点成为原点。
  2. 事实上有lineAB,AC,BC和AD。
  3. 事实点D在lineAB
  4. 点ID并不重要,只要它能够检测到这些位置有点并且它们之间有线。 OpenCV会帮助我实现这一目标吗?如果是这样,请你更具体一点吗?

    非常感谢。

1 个答案:

答案 0 :(得分:1)

正如joe所说hough变换会对你有所帮助,我知道openCV会帮助你,但我之前从未使用过它,这是一个简单的Matlab代码,我写的是为了提取点和坐标点。

f=imread("your image without piont ID"); 
f=rgb2gray(f);              
fb=im2bw(f,graythresh(f));  

[H,T,R] = hough(not(fb),'RhoResolution',0.5,'Theta',-90:0.5:89.5); 
peaks=houghpeaks(H,4,'threshold',ceil(0.3*max(H(:))));      


lines = houghlines(not(fb),T,R,peaks); %this will give u start and end point of lines, Rho and tetha (x*cos(tetha)+y*sin(tetha)=Rho) now you can answer to all of your questions 

http://en.wikipedia.org/wiki/Hough_transform