Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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_Feature Detection - Fatal编程技术网

Opencv 检测轮廓是否为无复杂图案的简单曲线或检测轮廓的起点和终点

Opencv 检测轮廓是否为无复杂图案的简单曲线或检测轮廓的起点和终点,opencv,feature-detection,Opencv,Feature Detection,我在检测轮廓是简单的曲线还是直线时遇到了问题。我需要过滤尽可能多的对象,只给我留下有趣的对象。但过滤所有不需要的对象并不是目标。我以后有更多的逻辑来检测所需的对象,但这需要花费很多时间。所以我正在寻找一些低成本的解决方案,在主算法参与之前过滤不需要的对象 我的应用程序中有两个例子 所以我想移除黄色标记的对象。并保留绿色标记的对象。我不会把所有的东西都圈起来,因为它们太多了。我的想法是,如果我能检测到线是否在边界框的角处开始和结束,但我不知道如何检测线的开始和结束位置。或者,如果我能够检测出轮

我在检测轮廓是简单的曲线还是直线时遇到了问题。我需要过滤尽可能多的对象,只给我留下有趣的对象。但过滤所有不需要的对象并不是目标。我以后有更多的逻辑来检测所需的对象,但这需要花费很多时间。所以我正在寻找一些低成本的解决方案,在主算法参与之前过滤不需要的对象

我的应用程序中有两个例子

所以我想移除黄色标记的对象。并保留绿色标记的对象。我不会把所有的东西都圈起来,因为它们太多了。我的想法是,如果我能检测到线是否在边界框的角处开始和结束,但我不知道如何检测线的开始和结束位置。或者,如果我能够检测出轮廓的起点和终点,我可以根据它们的距离来决定

我使用canny边缘检测和查找轮廓。根据物体的大小,我对物体进行了一些基本的过滤


我已经没有主意了,只能呆在这一部分了。我很高兴您的帮助或想法。

我发现HoughLinesP可以完成这项工作。

您可以假设一条线,然后测试像素位置与线的距离。如果太多的像素太远或诸如此类,你不删除对象。或者,不用假设一条直线,你可以拟合一条曲线并测试与该曲线的平均距离。