如果我想将medfilt2函数应用于特定像素位置而不是整个图像,是否有办法?可以使用称为IMask的二进制图像来表示像素位置。
答案 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
的矩阵,则是您想要处理的图像的一个子集但是您必须处理填充(边界处的零/对称/等值)。
之后,您只需要在正确的位置替换图像中的处理矩阵。