最佳熵自动阀值法图像分割

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的使用以及图像处理的原理有了很好的认识。

相关文档
最新文档