2016-01-21 127 views
0

怎么办上的图像的ROI(只)边缘检测而不处理图像的其余部分?我曾尝试以下,但它不工作:实施边缘检测图像的ROI在Matlab

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'); 

当我将此从roifilt2docs它工作得很好的例子(好吧,它看起来怪异在这种情况下...):

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) 

与下面的输出:

enter image description here