资源简介
数字图像处理大津法阈值分割

代码片段和文件信息
function otsu=otsu(Im)
%大津法计算阈值
I=double(Im);
IMAX=max(max(I));
IMIN=min(min(I));
T=double(IMIN:IMAX);
ISIZE=size(I); %图像大小
muxSize=ISIZE(1)*ISIZE(2);
tic %计时器
for i=1:length(T)
%从最小灰度值到最大灰度值分别计算方差
TK=T(1i);
ifground=0;
ibground=0;
%定义前景和背景的灰度总和
FgroundS=0;
BgroundS=0;
for j=1:ISIZE(1)
for k=1:ISIZE(2)
tmp=I(jk);
if(tmp>=TK)
ifground=ifground+1;
FgroundS=FgroundS+double(tmp); %前景灰度值
else
%背景像素点的计算
ibground=ibground+1;
BgroundS=BgroundS+double(tmp);
end
end
end
%计算前景和背景的比例、平均灰度值
%这里存在一个0分母的情况,导致警告,但不影响结果
w0=ifground/muxSize;
w1=ibground/muxSize;
u0=FgroundS/ifground;
u1=BgroundS/ibground;
T(2i)=w0*w1*(u0-u1)*(u0-u1);
end
%遍历后寻找I第二行的最大值
oMax=max(T(2:));
%第二行方差的最大值,忽略NaN
idx=find(T(2:)>=oMax);
%获得算法运行时间
% disp(strcat(‘大津法时间:‘num2str(toc)));
%方差最大值所对应的序列号
T=uint8(T(1idx));
%显示最佳阈值
% disp(strcat(‘大津法计算阈值为:‘num2str(T)));
%从第一行取出灰度值作为赋值
otsu=T;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1297 2016-12-08 21:09 otsu.m
- 上一篇:图像处理最大熵阈值分割法
- 下一篇:openvr for htc vive
相关资源
- 一维OTSU算法及相应的论文,希望对学
- 遗传算法优化otsu杭电模式识别课程作
- 灰度图像的二维otsu自动阈值分割法
- 求阈值的方法otsu法
- 二值化阈值的选取方法
- 三维Otsu图像分割算法
- 基于PSO优化的otsu分割算法.zip
- 阈值分割OTSU的C代码实现
- IDL写的OTSU算法
- CNNIC数字证书工具1.2和rootsupd.exe.zip
- 多算法融合的疲劳驾驶监测算法设计
- Windows XP根证书更新[2014年3月](KB931
- OTSU灰度图像全局动态阈值大津法.ra
- 自动阈值迭代法及Otsu法实验报告
- ostu图像分割阈值算法对Ostu图像分割最
- Otsu_fpga.v
- OTSU大津阈值及其加速算法解析
评论
共有 条评论