如何处理OpenCV :: Canny边缘检测的结果

时间:2017-07-10 06:04:08

标签: c++ algorithm opencv graph

我尝试使用Canny边缘检测算法来查找简单圆的边缘。

cv:: Canny() 

该函数返回

cv::Mat edge 

但我不知道如何使用这些" edge"。

我的目标是画出边缘"回到原始图像并读取该边缘内的信息(在这种情况下,边缘是圆圈)

我查看cv :: read函数,只找到不是边缘的drawContour函数。

而且我也不知道如何找到边缘的坐标,以便我可以对圆边的内部做一些事情。

我是openCV的新手,任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

edges是与源图片大小相同的数组(Mat),它包含Canny函数找到的边缘处的零像素和最大值(255)像素

您可以强调源图像的边缘(白色),使用bitwise_or边缘操作(在我的身上)。或者将边缘转换为彩色图像以绘制颜色边缘。 Here是使用边作为蒙版的示例。

边缘是光栅结果。要获取一组细分,请使用edges上的findContours函数,然后您可以使用drawContours

请注意,此信息可以很好地发布。

答案 1 :(得分:0)

您需要学习如何遍历cv :: Mat对象。 http://docs.opencv.org/2.4/doc/tutorials/core/how_to_scan_images/how_to_scan_images.html#the-efficient-way

此外,我建议你阅读本书学习opencv 的前几章来掌握这个库的基本用法,现在有第三版。您还可以在" InstallPath \ opencv \ sources \ samples"中找到许多示例。和官方教程:http://docs.opencv.org/2.4/doc/tutorials/tutorials.html