gpt4 book ai didi

c++ - OpenCV - 如何从 Canny 函数的结果中提取边缘?

转载 作者:太空狗 更新时间:2023-10-29 23:36:15 25 4
gpt4 key购买 nike

我在 OpenCV 中使用 Canny() 函数,如下所示

Mat detected_edges = GetImage...;
Canny( detected_edges, detected_edges, 20, 20*3, kernel_size );

我的问题是这个函数的结果只是一个黑白图像,我想得到检测到的一组边缘。

在 OpenCV 文档上写道

The function finds edges in the input image image and marks them in the output map edges using the Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The largest value is used to find initial segments of strong edges.

但是我不知道如何从结果图像中提取线条,有人可以帮助我。

UPDATE 下面是我用来测试的图片,这张图片包含了Canny函数的结果

enter image description here

最佳答案

正如 berak 的回答所指出的,您可以使用 findContoursHough在执行 Canny 边缘检测后转换以查找线。

不过我想补充一点,在执行 Canny 边缘检测和查找线条之前进行一些图像处理可能会有所帮助。例如,您似乎在地板上得到了很多不需要的轮廓,并且在您的 Canny 结果周围也发现了白色“规范”。

Smoothing该图像会有所帮助,也许还可以使用 mean shift algorithm按颜色分割图像。您可能还想探索其他处理图像的新颖方法。

关于c++ - OpenCV - 如何从 Canny 函数的结果中提取边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com