我正在使用 Sobel 运算符通过 EmguCV 3.0(OpenCV 的 .NET Wrapper)检测灰度图像中的边缘。
我正在使用的代码是
Image<Gray, byte> gray = new Image<Gray, byte>(@"C:\gray.bmp");
Image<Gray, float> sobel = gray.Sobel(0, 1, 3).Add(gray.Sobel(1, 0, 3)).AbsDiff(new Gray(0.0));
这是预处理后的图像(灰色)
这就是我得到的(索贝尔)
如您所见,右上角和左下角的边缘非常弱。我首先想到,它可能与原始图像有关,所以我将它旋转了 180 度并再次运行 sobel-filter。结果在右上角和左下角的边缘仍然很弱(不幸的是,我不允许在这里发布两个以上的链接,所以我不能给你看)。
所以我的问题是:这是一个错误,还是我使用 sobel 过滤器错误?当在二维中运行时,它不应该是旋转不变的吗?我该如何解决它,才能看到这两个边缘与其他边缘一样坚固?