从 OpenCV Canny 边缘检测器获取角度

2023-12-22

我想使用 OpenCV 的 Canny 边缘检测器,如中概述的这个问题 https://stackoverflow.com/questions/11987483/opencvs-canny-edge-detection-in-c。例如:

cv::Canny(image,contours,10,350); 

然而,我不仅希望得到最终的阈值图像,而且还希望得到每个像素检测到的边缘角度。这在 OpenCV 中可能吗?


canny不会直接给你这个。 但是,您可以通过索贝尔变换计算角度,该变换在内部使用canny().

伪代码:

    cv::Canny(image,contours,10,350);
    cv::Sobel(image, dx, CV_64F, 1, 0, 3, 1, 0, cv::BORDER_REPLICATE);
    cv::Sobel(image, dy, CV_64F, 0, 1, 3, 1, 0, cv::BORDER_REPLICATE);

    cv::Mat angle(image.size(), CV_64F)

    foreach (i,j) such that contours[i, j] > 0
    {
        angle[i, j] = atan2(dy[i,j], dx[i , j])
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 OpenCV Canny 边缘检测器获取角度 的相关文章

随机推荐