如何在不处理图像其余部分的情况下对图像的ROI(仅)进行边缘检测?我尝试过以下但是没有用:
h4 = @(x) edge(x,'log');
Edge_map = roifilt2(Foregound_Newframe,roi_mask,h4);
roi_mask是我正在使用的二进制掩码,Foregound_Newframe是要处理的灰色图像。请举个例子。谢谢。
答案 0 :(得分:1)
我看到的错误是您用来进行过滤的函数需要类型为double
的输入参数,否则您的调用语法应该可以正常工作。
即。使用
YourFilter = @(x) edge(double(x),'log');
当我将此应用于roifilt2
blog series的示例时,它工作正常(在这种情况下看起来很奇怪......):
clc
clear
FullImage = imread('eight.tif');
roi_col = [222 272 300 270 221 194];
roi_row = [21 21 75 121 121 75];
ROI = roipoly(FullImage,roi_col,roi_row);
YourFilter = @(x) edge(double(x),'log');
J = roifilt2(FullImage,ROI,YourFilter);
figure, imshow(FullImage), figure, imshow(J)
以下输出: