我有这个灰度原始图像:
我想检测物体的边缘。但是,它会受到边缘附近照明的影响。这是我在高斯模糊和 Canny 边缘检测之后得到的:
这是我的代码:
cv::cvtColor(imgOriginal, imgGrayscale, CV_BGR2GRAY); // convert to grayscale
cv::GaussianBlur(crop, // input image
imgBlurred, // output image
cv::Size(5, 5), // smoothing window width and height in pixels
5); // sigma value, determines how much the image will be blurred
cv::Canny(imgBlurred, // input image
imgCanny, // output image
0, // low threshold
100); // high threshold
光源位于物体下方。物体边缘的照明来自光源或光的反射。他们总是在同一个地方。
照明也被检测为边缘。我尝试了其他几种方法,例如连接组件标签和使用示例代码(这里是初学者)对图像进行二值化,但都可以使用。有没有办法检测干净的边缘照明?