Matlab,如何在特定的像素位置上应用medfilt2函数

时间:2017-07-21 20:10:29

标签: matlab image-processing

如果我想将medfilt2函数应用于特定像素位置而不是整个图像,是否有办法?可以使用称为IMask的二进制图像来表示像素位置。

2 个答案:

答案 0 :(得分:3)

懒惰方法是在整个图像上应用medfilt2,然后复制特定位置。 E.g。

A = magic(10); % sample matrix
IMask = logical(randi([0 1],10)); % sample locations

B = medfilt2(A);
A(IMask) = B(IMask);

不是很优雅,但除非您的矩阵很大且IMask大部分都是假的,否则它会完成这项工作。

答案 1 :(得分:0)

我没有看到这一点,但如果您定义要传递给medfilt2的矩阵,则是您想要处理的图像的一个子集但是您必须处理填充(边界处的零/对称/等值)。

之后,您只需要在正确的位置替换图像中的处理矩阵。