不具体描述了,直接上代码,可以做参考意义。
function [ imout ] = ImageFilter( imin, operator)
%UNTITLED 此处显示有关此函数的摘要
% 此处显示详细说明
[m,n,g] = size(imin);
[a,b] = size(operator);
imout = zeros(m,n,g);
if (mod(a,2) ~= 1) || (mod(b,2) ~= 1)
return;
end
imin = im2double(imin);
imout = im2double(imout);
a = fix(a/2);
b = fix(b/2);
for i = 1:m
for j = 1:n
for k = -a:a
for l = -b:b
if ( ((k+i) >= 1) && ( (k+i) <= m) && ( (j+l) >= 1) && ( (j+l) <= n) )
imout(i,j,:) = imout(i,j,:) + imin(k+i,j+l,:)*operator