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_Computer Vision_Line_Detection_Vision - Fatal编程技术网

OpenCV中最基本的线条检测方法是什么

OpenCV中最基本的线条检测方法是什么,opencv,computer-vision,line,detection,vision,Opencv,Computer Vision,Line,Detection,Vision,我正在学习OpenCV,我有一个关于测线的问题。我需要在白色背景上检测水平黑线。我保证这条线将始终水平显示(在几度以内),并且需要检测它在相机图像中的位置 我的想法是,因为它总是水平的,我可以通过图像上的几列垂直搜索“边缘”,并称之为好的。甚至可以缩小我从相机中捕获的像素数量,以提高速度 但是,这种类型的测线是否有内置功能 我不需要额外的能量,也负担不起Canny或Hough的处理时间,我只想尽快找到一条有保证的水平线 图像(运行我的解决方案时)如下所示: 如果您提供您所谈论的图像类型,则建议解

我正在学习OpenCV,我有一个关于测线的问题。我需要在白色背景上检测水平黑线。我保证这条线将始终水平显示(在几度以内),并且需要检测它在相机图像中的位置

我的想法是,因为它总是水平的,我可以通过图像上的几列垂直搜索“边缘”,并称之为好的。甚至可以缩小我从相机中捕获的像素数量,以提高速度

但是,这种类型的测线是否有内置功能

我不需要额外的能量,也负担不起Canny或Hough的处理时间,我只想尽快找到一条有保证的水平线

图像(运行我的解决方案时)如下所示:


如果您提供您所谈论的图像类型,则建议解决方案会更好

我还想知道,为什么你们不能使用计算成本不高的Canny检测器呢。此外,您还可以将图像向下倾斜,计算边缘并过滤水平边缘


另一方面,知道水平边在图像平面上始终是水平的,可以使用模板匹配。

如果您提供您所谈论的图像类型,则建议解决方案会更好

我还想知道,为什么你们不能使用计算成本不高的Canny检测器呢。此外,您还可以将图像向下倾斜,计算边缘并过滤水平边缘


另一方面,知道水平边在图像平面上始终是水平的,可以使用模板匹配。

我最后使用的方法是for循环。对图像进行阈值处理后,我沿着两列搜索,以查找所有“边”或值的变化。然后我处理这个列表,只找到水平边对

然后,我找到所有足够靠近的线,并有一个所需的内嵌(对阈值图像的布尔比较),它实际上只找到我感兴趣的跟踪带

这大约是一次精明的电话通话时间的50分之一,还不包括需要的搜索任务等。然而,我还没有对霍夫进行测试,但我相信这仍然会大大加快

因为最大的问题是处理速度,所以我还做了其他一些优化


代码可以在这里找到(我保证评论得很好):

我最终使用的方法是for循环。对图像进行阈值处理后,我沿着两列搜索,以查找所有“边”或值的变化。然后我处理这个列表,只找到水平边对

然后,我找到所有足够靠近的线,并有一个所需的内嵌(对阈值图像的布尔比较),它实际上只找到我感兴趣的跟踪带

这大约是一次精明的电话通话时间的50分之一,还不包括需要的搜索任务等。然而,我还没有对霍夫进行测试,但我相信这仍然会大大加快

因为最大的问题是处理速度,所以我还做了其他一些优化


代码可以在这里找到(我保证评论得很好):

如果我理解你的话,我已经在中实现了类似的东西,你能展示一些图片吗?如果我理解你的话,我在中实现了类似的东西,你能展示一些图片吗?也许你应该熟悉Hough transform。然后你甚至不必考虑:)小猪,我现在对它很熟悉,但再一次,由于处理速度是一个问题,我需要一个更简单的解决方案。我不想做“边缘检测->霍夫变换->去霍夫化”,当我基本上可以把一个定制的边缘检测器组装在一起,它告诉我水平线在哪里。再一次,我确信Hough是有效的,但是对于这个应用程序来说,它太强大了,太慢了。也许你应该熟悉Hough变换。然后你甚至不必考虑:)小猪,我现在对它很熟悉,但再一次,由于处理速度是一个问题,我需要一个更简单的解决方案。我不想做“边缘检测->霍夫变换->去霍夫化”,当我基本上可以把一个定制的边缘检测器组装在一起,它告诉我水平线在哪里。再一次,我确信Hough是有效的,但是对于这个应用程序来说,它是强大的,而且太慢了。