我想使用 OpenCV 的 Canny 边缘检测器,如 this question 中概述的那样.例如:
cv::Canny(image,contours,10,350);
但是,我不仅希望得到最终的阈值图像,而且我还希望得到检测到的每个像素的边缘角度。这在 OpenCV 中可能吗?
最佳答案
canny
不会直接给你这个。
但是,您可以根据 canny()
内部使用的 Sobel 变换计算角度。
伪代码:
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])
}
关于c++ - 从 OpenCV Canny 边缘检测器获取角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19530060/