Opencv 行检测如何决定保留哪些行
我有一个任务,我需要检测视频中的电源线。例如,以下是从视频中拍摄的图像: 这条线在视频中是明亮的目标,所以我使用了“关闭”操作使其更加清晰。然后我使用LSDDetect来检测行。然后我得到一组检测到的线,这些线由端点表示。结果如下: 但是因为背景很复杂,我得到了很多我不想要的小线条。我可以通过定义线角度(大约90度)和视图字段(x坐标值范围)过滤掉其中的大部分。 问题是这个值是由我定义的。如何使程序自动计算正确的角度和视野?还是有更好的解决方案Opencv 行检测如何决定保留哪些行,opencv,Opencv,我有一个任务,我需要检测视频中的电源线。例如,以下是从视频中拍摄的图像: 这条线在视频中是明亮的目标,所以我使用了“关闭”操作使其更加清晰。然后我使用LSDDetect来检测行。然后我得到一组检测到的线,这些线由端点表示。结果如下: 但是因为背景很复杂,我得到了很多我不想要的小线条。我可以通过定义线角度(大约90度)和视图字段(x坐标值范围)过滤掉其中的大部分。 问题是这个值是由我定义的。如何使程序自动计算正确的角度和视野?还是有更好的解决方案 我是opencv的新手。现在我只使用open
我是opencv的新手。现在我只使用opencv提供的库,比如LSDDetect函数,我不知道它们是如何实现的请分享一些图片,以便更好地理解问题陈述。我添加了一些图片,因为它可以变化,但是你可以考虑使用一些形态过滤器来消除噪音。此外,您希望保留的线条大多是笔直的大线条-您还可以尝试删除不笔直的线条(例如,给定阈值)和最小尺寸的线条。另一个选择是在图像中放置线-如果你能保证它们穿过图像的中心部分,你可以在图像边界附近画线。。。您也可以尝试组合解决方案,以获得更好的结果……LSDDetect方法为我提供了一个线条集合,每个线条有两个端点。所以基本上每条线都是直的。但我有一个长度限制,它有一些影响。至于提到的形态过滤器@LeonardoAlvesMachado,我使用了闭合操作(扩张一次,然后腐蚀三次)。结果是电线看起来更亮了。这是正确的过滤器吗?现在我只是把矩形区域保持在中心(x坐标范围从350到650)。有没有办法让计算机决定保留哪个区域?在我看来,如果按照你所说的方式使用形态过滤器可以让你将电线与其他电线区分开来,那么至少你走的是正确的道路。要决定保留哪个区域,为什么不使用滑动窗口方法-测试是否在中心找到电源线,如果找不到,则在上/左、右下、左下、右上尝试(直到找到所需的或覆盖整个图像)。问题在于最坏情况下的性能,但如果大多数情况下您发现它在中间,那也没什么大不了的。