我正在尝试仅将算法应用于图像的特定区域。我尝试imfreehand
使用此功能,但至少对我而言,无法这样做。
因此,在运行我的代码时是否有某种方法可以将操作仅应用于其中的某个特定图像区域MATLAB
?
谢谢。
使用由任何“ imroi”功能定义的遮罩-包括imfreehand和imellipse,您可以使用roifilt2使用给定的过滤器或功能仅过滤roi。
首先,定义区域:
imshow(I); %display your image
h = imfreehand; % now pick the region
BW = createmask(h); %makes BW mask
然后,通过以下方式之一使用roifilt2-
定义一个过滤器并应用它:
H = fspecial('unsharp');
I2 = roifilt2(H,I,BW);`
将给定函数应用于roi:
I2 = roifilt2(I, BW, 'histeq');
将给定函数应用于roi,并指定参数:
fh = @(I)(histeq(I,5)); %define function
I2 = roifilt2(I, BW, fh);
最后一个等效于调用I2 = hist(I,5); 但仅适用于已定义的投资回报率。
和:
如果您要在roi上调用多个函数,则定义自己的函数可能是最简单的,该函数接受图像输入(以及可选的其他参数),将适当的滤镜/函数应用于图像,然后输出最终图像-您将以与上述“ histeq”相同的方式调用“ myfunc”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句