我在图像上使用基于ROI的处理会得到奇怪的结果。
我使用 edge 和 roifilt2 功能来处理图像。我只对检测图像特定区域的边缘感兴趣,所以我定义了一个遮罩。
让我们调用图像 I 和掩码 M 。我使用Canny的方法,有两个指定的阈值, t1 和 t2 。
当我使用语法
处理整个图像时figure=edge(I,'canny', [t1 t2])
我得到一个结果。但是,当我使用 roifilt2 处理感兴趣的区域时,当我处理整个图像时,ROI中的边缘与同一区域中的边缘不同。
我定义了一个函数句柄,如下所示
edgecanny= @(I) edge(I,'canny',[t1 t2]);
然后在roifilt2中使用它
figure = roifilt2(I, mask, edgecanny)
如果我在两种情况下使用相同的精确参数(除了处理区域的大小),为什么同一区域中检测到的边缘不同?
如有必要,我可以提供有问题的图像和面具。