Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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 什么是Canny thresolds?_Opencv_Computer Vision_Edge Detection - Fatal编程技术网

Opencv 什么是Canny thresolds?

Opencv 什么是Canny thresolds?,opencv,computer-vision,edge-detection,Opencv,Computer Vision,Edge Detection,是否可以使忽略短边或忽略低梯度边?在我的情况下,我有一张卡片躺在木头上,看到许多木头结构的边缘 canny函数中的两个阈值用于什么 较大的强度梯度更可能对应于边缘,而不是边缘 小强度梯度。在大多数情况下,不可能指定 给定强度梯度从 对应于一条边,不这样做。因此精明的使用 具有滞后性的阈值化 滞后阈值需要两个阈值-高和低。 假设重要的边应该是连续的 图像中的曲线允许我们跟踪给定区域的一个模糊部分 线,以丢弃一些不构成线的噪声像素 但是产生了很大的梯度。因此,我们首先应用 高门槛。这标记出了我们可

是否可以使忽略短边或忽略低梯度边?在我的情况下,我有一张卡片躺在木头上,看到许多木头结构的边缘

canny函数中的两个阈值用于什么

较大的强度梯度更可能对应于边缘,而不是边缘 小强度梯度。在大多数情况下,不可能指定 给定强度梯度从 对应于一条边,不这样做。因此精明的使用 具有滞后性的阈值化

滞后阈值需要两个阈值-高和低。 假设重要的边应该是连续的 图像中的曲线允许我们跟踪给定区域的一个模糊部分 线,以丢弃一些不构成线的噪声像素 但是产生了很大的梯度。因此,我们首先应用 高门槛。这标记出了我们可以相当肯定的边缘 真正的从这些开始,使用方向信息 根据前面的推导,可以通过图像跟踪边缘。追踪时 一个边缘,我们应用较低的阈值,允许我们跟踪微弱的光线 只要我们找到一个起点,就有一段边

一旦这个过程完成,我们有一个二进制图像,其中每个像素 标记为边缘像素或非边缘像素。从…起 边缘跟踪步骤的补充输出,二进制边缘映射 以这种方式获得的曲线也可以视为一组边曲线, 经过进一步处理后,可以在 图像域

另见:

阈值:使用两个具有滞后的阈值允许更多 比单一阈值方法更灵活,但存在一般性问题 许多阈值方法仍然适用。阈值设置太高可能会导致错误 错过重要信息。另一方面,阈值设置得太低 会错误地将不相关的信息(如噪音)识别为 重要的。很难给出一个有效的通用阈值 在所有图像上。对于这个问题还没有经过尝试和测试的方法 存在

在您的例子中,您可以稍微增加阈值,看看它是否会进一步减少短线

来源:

更新

对于这幅图像,我可能会对其进行预处理,对其应用较低的对比度。这有助于在通过模糊和线条检测器运行图像之前减少图像背景中的细节

较大的强度梯度更可能对应于边缘,而不是边缘 小强度梯度。在大多数情况下,不可能指定 给定强度梯度从 对应于一条边,不这样做。因此精明的使用 具有滞后性的阈值化

滞后阈值需要两个阈值-高和低。 假设重要的边应该是连续的 图像中的曲线允许我们跟踪给定区域的一个模糊部分 线,以丢弃一些不构成线的噪声像素 但是产生了很大的梯度。因此,我们首先应用 高门槛。这标记出了我们可以相当肯定的边缘 真正的从这些开始,使用方向信息 根据前面的推导,可以通过图像跟踪边缘。追踪时 一个边缘,我们应用较低的阈值,允许我们跟踪微弱的光线 只要我们找到一个起点,就有一段边

一旦这个过程完成,我们有一个二进制图像,其中每个像素 标记为边缘像素或非边缘像素。从…起 边缘跟踪步骤的补充输出,二进制边缘映射 以这种方式获得的曲线也可以视为一组边曲线, 经过进一步处理后,可以在 图像域

另见:

阈值:使用两个具有滞后的阈值允许更多 比单一阈值方法更灵活,但存在一般性问题 许多阈值方法仍然适用。阈值设置太高可能会导致错误 错过重要信息。另一方面,阈值设置得太低 会错误地将不相关的信息(如噪音)识别为 重要的。很难给出一个有效的通用阈值 在所有图像上。对于这个问题还没有经过尝试和测试的方法 存在

在您的例子中,您可以稍微增加阈值,看看它是否会进一步减少短线

来源:

更新


对于这幅图像,我可能会对其进行预处理,对其应用较低的对比度。这有助于在图像通过模糊和线条检测器之前稍微减少图像背景中的细节。

使用before
Canny
将有助于去除许多不需要的细节。也许@Ken建议增加低阈值

使用before
Canny
将有助于去除许多不需要的细节。也许会像@Ken建议的那样增加低阈值

因为你看到我的图像很模糊。但是我使用了
blur()
。你会帮忙吗?我还注意到,模糊不仅可以去除噪声,还可以模糊边缘,以便用canny进行检测。
GaussianBlur()
更适合使用过滤器
blur()
只是一个框过滤器,可能会引入瑕疵。尝试它不会有什么损失。坎尼的阈值是模糊的;这应该相当于将两个阈值都增加一定量。@beerbajay Canny阈值与模糊无关。转到并阅读有关“滞后”的内容@B。。。啊,很对。我想我被matlab实现搞糊涂了,它除了接受阈值外还接受一个sigma参数。不管怎么说,谢谢你把它弄清楚。正如你看到的,我的图像很模糊。但是我使用了
blur()
。你会帮忙吗?我还注意到,模糊不仅仅是