【问题标题】:How to process the result of OpenCV:: Canny Edge Detection如何处理 OpenCV:: Canny 边缘检测的结果
【发布时间】:2017-12-13 18:11:24
【问题描述】:

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

cv:: Canny() 

函数返回一个

cv::Mat edge 

但我不知道如何使用这些“边缘”。

我的目标是将“边缘”绘制回原始图像并读取该边缘内的信息(在这种情况下,边缘是一个圆)

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

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

我是 openCV 新手,欢迎提出任何建议。

【问题讨论】:

    标签: c++ algorithm opencv graph


    【解决方案1】:

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

    您可以强调源图像的边缘(通过白色),使用边缘进行bitwise_or 操作(在我的)。或将边缘转换为彩色图像以绘制彩色边缘。 Here 是使用边缘作为遮罩的示例。

    边缘是光栅结果。要获得一组线段,请在edges 上使用findContours 函数,然后您可以使用drawContours

    请注意,此信息可通过谷歌搜索。

    【讨论】:

      【解决方案2】:

      您需要学习如何遍历 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-15
        • 2012-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多