Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV平行线剔除_Opencv_Image Processing_Detection_Image Recognition_Object Detection - Fatal编程技术网

OpenCV平行线剔除

OpenCV平行线剔除,opencv,image-processing,detection,image-recognition,object-detection,Opencv,Image Processing,Detection,Image Recognition,Object Detection,我有一个算法,它简单地通过一些角点,找到那些平行的角点。我的问题是,如下所示,我有时会得到假阳性结果 为了消除这一点,我要检查两个点是否都落在一条hough线上,但这将需要大量计算,我想知道是否有人有更简单的想法 谢谢 好的根据评论,这应该是可以修复的。当你检测到一对平行线时,用你用来构造它的两个角来得到这条线的方程。该行的形式可能是y=mx+c。然后,对于两点之间的每个y坐标,计算x坐标。这将为您提供线段覆盖的所有像素集。通过这些像素,检查每个像素的强度是否更接近黑色而不是白色。如果集合中的大

我有一个算法,它简单地通过一些角点,找到那些平行的角点。我的问题是,如下所示,我有时会得到假阳性结果

为了消除这一点,我要检查两个点是否都落在一条hough线上,但这将需要大量计算,我想知道是否有人有更简单的想法

谢谢


好的根据评论,这应该是可以修复的。当你检测到一对平行线时,用你用来构造它的两个角来得到这条线的方程。该行的形式可能是
y=mx+c
。然后,对于两点之间的每个
y
坐标,计算
x
坐标。这将为您提供线段覆盖的所有像素集。通过这些像素,检查每个像素的强度是否更接近黑色而不是白色。如果集合中的大多数像素是黑色的,那么它就是一条线。如果不是,它可能是一条非直线。

角点平行,是指角点方向吗?因为直线可以是平行的,但不是点。当然可以。我在每个点之间创建一条线,然后检查这些线是否与其他线平行,并创建平行线对。问题是,当我从没有线连接的点创建线时,会出现误报,如上所示。在棕色线下面,图像中没有连接点的线。为了检查我是否理解正确。。。图像中是否已经存在灰线?你想找到一对平行的灰线?灰线代表图像,是的。我已将其隔离以搜索点4-7和1-8来显示问题。问题不在于检测平行线——这是可行的,问题在于它会在图像上没有线条的地方创建线条,这是我需要解决的问题。这就是我说的将其与我收集的hough线条进行比较的基本意思。问题是,这将是非常CPU密集型的,我想知道是否有替代的解决方案。您不需要在整个图像中执行hough变换。从一对角点开始得到直线方程,然后沿着直线遍历这些像素。对于高达200个角点左右的高清图像,您应该能够在10毫秒内完成此操作。