从运算算子中,选择中间值作为当前输出。
如果转发,请注明出处。
中值滤波函数
function [ img ] = ImageMidFilter(imin,operator)
[m,n,g] = size(imin);
[k,h] = size(operator);
imin = im2double(imin);
a = fix(k/2);
b = fix(h/2);
img = zeros(m,n,g);
buf = zeros(k*h,1);
buf1 = buf;
for i = 1:m
for j = 1:n
cnt = 1;
for k = -a:a
for l = -b:b
if (i+k >= 1) && ( i+k <= m) && (j+l >= 1) && (j+l <= n)
buf(cnt) = imin(i+k,j+l);
cnt = cnt + 1;
end