⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spinfilter.m

📁 用MATLAB编写的图像灰度处理程序
💻 M
字号:
clear all;
x=imread('020.bmp');%输入文件
g=double(rgb2gray(x));
[grow,gcol]=size(g);
Dij(1,1:8)=0;
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%旋滤波部分的程序,分成8个方向,取方差最小为滤波方向。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=4:grow-4
    for j=4:gcol-4

       B(1:8,1:7)=[g(i-3,j), g(i-2,j), g(i-1,j),g(i,j), g(i+1,j), g(i+2,j), g(i+3,j);
       g(i-3,j+2), g(i-2,j+1) ,g(i-1,j+1),g(i,j),  g(i+1,j-1), g(i+2,j-1),  g(i+3,j-2);
       g(i-3,j+3),  g(i-2,j+2), g(i-1,j+1),g(i,j), g(i+1,j-1), g(i+2,j-2), g(i+3,j-3);
       g(i-1,j+3),  g(i-1,j+2), g(i,j+1), g(i,j),g(i,j-1) ,g(i+1,j-2) ,g(i+1,j-3);
       g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3);
       g(i-1,j-3), g(i-1,j-2),  g(i,j-1) ,g(i,j),g(i,j+1), g(i+1,j+2), g(i+1,j+3);
       g(i-3,j-3), g(i-2,j-2), g(i-1,j-1), g(i,j),g(i+1,j+1),  g(i+2,j+2) ,g(i+3,j+3);
       g(i-3,j-2), g(i-2,j-1), g(i-1,j+1), g(i,j),g(i+1,j+1), g(i+2,j+1), g(i+3,j+2)];
       B=double(B');
       Dij=Dij+std(B);
%end
%end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%根据方向,确定滤波方向,进行中值滤波,输入新的矩阵g1中。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[k,kk]=find(Dij==min(Dij));

Direction(i,j)=kk;

  switch (kk(1))%根据方向确定入口
  case 1
    
                 B1=[g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3)];
                 B1=double(B1);
                 g1(i,j)=median3(B1);%进行中值滤波
           

 case 2
       
                 B1=[g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3)];
                 B1=double(B1);
                 g1(i,j)=median3(B1);
              

 case 3
      
                 B1=[g(i-3,j+3),  g(i-2,j+2), g(i-1,j+1),g(i,j), g(i+1,j-1), g(i+2,j-2), g(i+3,j-3)];
                 B1=double(B1);
                 g1(i,j)=median3(B1);
                

 case 4
       
                 B1=[g(i-1,j+3),  g(i-1,j+2), g(i,j+1), g(i,j),g(i,j-1) ,g(i+1,j-2) ,g(i+1,j-3)];
                 B1=double(B1);
                 g1(i,j)=median3(B1);
                 

 case 5
       
                  B1=[g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3)];
                  B1=double(B1);
                  g1(i,j)=median3(B1);
                 

 case 6
      
    
                  B1=[g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3)];
                  B1=double(B1);
                  g1(i,j)=median3(B1);
                

 case 7
      
                  B1=[g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3)];
                  B1=double(B1);
                  g1(i,j)=median3(B1);
            

 case 8
      
                  B1=[g(i,j-3) ,g(i,j-2), g(i,j-1), g(i,j),g(i,j+1), g(i,j+2), g(i,j+3)];
                  B1=double(B1);
                  g1(i,j)=median3(B1);
                   
      
 end

end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%将文件重新存回原目录
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
g3=mat2gray(g1);
imwrite(g3,'tt7.bmp','bmp');


function y=median3(x)
p=sort(x);
y=p(1,3);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -