最佳熵自动阀值法图像分割
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DIP上机报告
题目:数字图像处理上机报告(第5次)
学校:中国地质大学(武汉)
指导老师:傅华明
姓名:龙勋
学号: 20111000681 班级: 071112-06
目录
1最佳熵自动阀值法图像分割........................... 错误!未定义书签。2上机小结 (5)
最佳熵自动阀值法
题目要求:
采用最佳熵自动阈值法对下图实施分割。
算法设计:
1.导入图像
2.通过图像的直方图计算每个像素点的概率
3.统计每个灰度值出现的概率
4.分别计算图像的背景熵和目标熵
5.计算图像熵的最大值,并且将其作为图像分割的阀值
6.进行图像的分割和分割图像的显示
程序代码:
clear all
a = imread('p5-09.tif');
figure,imshow(a)
count = imhist(a); %图像的直方图
[m,n] = size(a);
N = m*n;
L = 256;
count = count/N; %每一个像素的分布概率
for i = 1:L
if count(i) ~= 0
st = i-1;
break;
end
end
for i = L:-1:1
if count(i) ~= 0
nd = i-1;
break;
end
end
f = count(st+1:nd+1); %f是每个灰度出现的概率
size(f);
E=[];
for Th = st:nd+1
Hbt = 0;
Hwt = 0;
Pth = sum(count(1:Th+1));
for i = 0:Th %计算图像背景的熵
Hbt = Hbt-count(i+1)/Pth*log(count(i+1)/Pth+0.01);
end
for i = Th+1:L-1; %计算图像目标的熵
Hwt = Hwt-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.01);
end
E(Th-st+1) = Hbt+Hwt;
end
position = find(E==(max(E)));
Ht = st+position-100;
for i = 1:m
for j = 1:n
if a(i,j)>Ht
a(i,j) = 0; %对图像分割
else
a(i,j) = 255;
end
end
end
figure,imshow(a);
运行结果:
结果分析:
通过结果可以看出来,此程序中通过计算最大的Ht,即图像的阀值,成果地将图像的目标与背景分割开来,通过这次的上机实习,我又学习到了一种图像分割的办法,并且成功地将其在MATLAB的环境下实现。使我更加对MATLAB的使用以及图像处理的原理有了很好的认识。