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

📄 erosion_block.m

📁 关于偏微分方程进行图像处理的电子书,对于学习动态轮廓实现图像的分割非常有用
💻 M
字号:
function erosion_block(filename,r,out_file_name)
% 腐蚀算子
% filename 输入图像文件名
% 结构元素为方块,边长为2r+1
% out_file_name 输出文件名

if nargin<3
    disp('请按输入参数说明正确输入参数!!!');
    return;
end

 image_I=imread(filename);
 [size_m,size_n]=size(image_I);
 Image_ex=matrix_expand(image_I,r);
  
for row=1:size_m
      for col=1:size_n
          %对每一点求其 t领域 的最大值
              min=256;
              for x=-r:r
                  for y=-r:r
                      new_r=row+r+x;
                      new_c=col+r+y;
                     if Image_ex(new_r,new_c)<min
                            min=Image_ex(new_r,new_c);                       
                     end
                 end 
              end
              image_O(row,col)=min;
         end
     end   
 imwrite(uint8(image_O),out_file_name);
 %----------------------------------------------------end                     
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function matrix_ex=matrix_expand(matrix,x)
% 对矩阵进行延拓 ,镜面映射  
   [size_r,size_c]=size(matrix);
   matrix_ex=zeros(size_r+2*x,size_c+2*x);
   % 中
   for row=1:size_r
       for col=1:size_c
           matrix_ex(row+x,col+x)=matrix(row,col);
       end
  end
  % 左,右
  for row=1:size_r
      for col=1:x
          matrix_ex(row+x,x-col+1)=matrix(row,col);
          matrix_ex(row+x,size_c+x+col)=matrix(row,size_c-col+1);
      end
  end
  % 上,下
  for row=1:x
      for col=1:size_c 
          matrix_ex(x-row+1,col+x)=matrix(row,col);
          matrix_ex(size_r+x+row,col+x)=matrix(size_r-row+1,col);
      end
  end

  for row=1:x
       for col=1:x
           matrix_ex( x-col+1,x-row+1 )=matrix(row,col);   % LL
           matrix_ex( x-col+1,size_c+x+row )=matrix(row,size_c-col+1); %LH
           matrix_ex( size_r+x+col,x-row+1 )=matrix(size_r-row+1,col); % HL
           matrix_ex( size_r+x+col,size_c+x+row)=matrix(size_r-row+1,size_c-col+1);%HH
       end
   end   
% --------------------------

⌨️ 快捷键说明

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