本程序能够对灰度图像先进行二值化,再进行腐蚀操作




                   
from:  http://hi.baidu.com/archiless/blog/item/97a97cd9a12e25e939012fc7.html
 
 

%function erode0207all(Input,thresh,element)
Input=imread('c:/boat.png');
thresh=128;
%element=ones(5,5);
element=5;
% 本程序能够对灰度图像先进行二值化,再进行腐蚀操作
% 格式介绍:Input为欲处理的灰度图像;thresh为自选的阈值参数进行二值化,可输入0到255之间任意整数
%           element为进行腐蚀操作的结构单元,本程序可提供3×3、5×5、7×7等奇数方阵的结构单元,
%                  原点都在中心位置,建议用三阶或五阶方阵

%----------------------------Begin Code------------------------------
% 一,图像二值化处理
[m,n]=size(Input);              % 确定原图像的长、宽
Two=zeros(m,n);                 % 定义二值化矩阵
Two(find(Input>=thresh))=1;     % 对原图像进行二值化处理

% 二,腐蚀操作前的预处理
Temp=zeros(element);            % 定义3×3或5×5的结构单元
Output=zeros(m,n);              % 定义输出矩阵
s=m+1-element;                  % s、t为循环长度
t=n+1-element;
Length=element-1;               % Length和Radius的含义在循环中介绍
Radius=Length/2;
square=element*element;         % 两个结构单元中元素的总和,即 9 、25 、49 …………

% 三,进行腐蚀操作
for i=1:s
    for j=1:t
        Temp=Two(i:i+Length,j:j+Length);    % 从二值化图像中依次取出三阶或五阶方阵
        if sum(Temp(:))==square             % 判断方阵中元素总和为 9 或 25 时
            Output(i+Radius,j+Radius)=1;    %方阵中心元素在输出矩阵中相应位置上的值为 1
        end
    end
end

% 四,输出处理前后的图像
figure,subplot(2,2,1),imshow(Input),title('原图像');
subplot(2,2,2),imshow(Two),title('二值化后的图像');
subplot(2,2,3),imshow(Output),title('腐蚀后的图像');
[qq,pp]=size(Input)
[ww,mm]=size(Two)
%--------------------------------End Code--------------------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值