www.pudn.com > tuxiangjiaozheng.rar > algo_blur.m, change:2013-01-14,size:930b


 
 
function  [processImg]= algo_blur( inputImg , n ) 
    dImg = double( inputImg ); 
    [h,w,k] = size( dImg ); 
    g = zeros(h,w,k)+255; %生成一个与原图像矩阵有相同维数的矩阵g 
    for y = 2:h - 1       %剔除图像矩阵最外一层的点,处理可以被模板包含的点 
        for x=2:w-1 
            for j=1:k 
                g(y,x,j)=pick_tem( dImg,x,y,j,n); %采用二阶微分算子处理,返回处理点(x,y)后的像素值 
            end 
        end 
    end 
	processImg = uint8( g ); 
     
     
function pic_tem = pick_tem(b,x,y,j,tem_n)    
% b是一个三维矩阵,j 是代表第几层矩阵 
%tem_n代表模板号0代表采用第一种模板,1代表采用第二种模板 
if tem_n==0  %第一种模板 
  %返回二阶微分处理后的值 
    pic_tem=5*b(y,x,j)-(b(y,x-1,j)+b(y+1,x,j)+b(y-1,x,j)+b(y,x+1,j)); 
else   %第二种模板 
  %返回二阶微分处理后的值 
    pic_tem=9*b(y,x,j)-(b(y-1,x-1,j)+b(y-1,x,j)+b(y-1,x+1,j)+b(y,x-1,j)+b(y+1,x+1,j)+b(y+1,x-1,j)+b(y+1,x,j)+b(y+1,x+1,j)); 
end