例如,我开始我的程序如下读取一些图像:
I=input('image name: ','s');
img=double(imread(I));
我打算只处理该图像的某些部分。所以,我注意到我可能需要h=imfreehand
为此目的。
因此,我h=imfreehand
在上面的两行下插入了。我得到的是一个白屏。那么,如何获取图像并选择我想要的区域?另一件事是,我怎样才能告诉我的程序只在我选择的那个区域上工作?
谢谢。
更新
我在部分代码中执行了以下操作:
figure, imshow(img);
h = imfreehand;
position = wait(h);
% post processing
se=strel('disk',3);
erosion=imerode(h,se);
result_image=imsubtract(h,erosion);.
但是,我收到以下错误:
Error using imerode
Expected input number 1, IM, to be one of these types:
numeric, logical
Instead its type was imfreehand.
Error in morphop>CheckInputImage (line 335)
validateattributes(A, {'numeric' 'logical'}, {'real' 'nonsparse'}, ...
Error in morphop>ParseInputs (line 166)
A = CheckInputImage(A, func_name);
Error in morphop (line 14)
[A,se,pre_pad,...
Error in imerode (line 123)
B = morphop(A,se,'erode',mfilename,varargin{:});
Error in program (line 155)
erosion=imerode(h,se);
erosion
是不是跟 在这种情况下可以做什么?
`