matlab练习程序(Renyi熵)
Renyi熵是对通常的⾹农熵的扩展,算是q阶⼴义熵。公式如下: 其中P和⾹农熵公式中的P⼀样,是概率。当q=1时公式退化为⾹农熵公式。(如何证明?)
变量泵>治理与善治有⽤此公式寻图像最佳⼆值化阈值的。 那么前景与背景区域像素相应的Renyi熵就如下定义:
其中k是当前取的灰度级,P(A)是像素在A区域的概率,P(B)类似。当然,这⾥说区域,不是指空间区域,是像素灰度级区域。最后图像Renyi熵求最佳阈值定义如下:
分片阈值这⾥得到的K就是分割阈值。
分割效果如下:
原图:
分割后:
在编程时还需要确定阶数q,我取的是2。
matlab代码如下:
clear all;
close all;
eisclc;
img=imread('lena.jpg');
[m n]=size(img);
imshow(img)
Hist=imhist(img);
q=2;
H=[];
for k=2:256
PA=sum(Hist(1:k-1));
PB=sum(Hist(k:255));
Pa=Hist(1:k-1)/PA;
Pb=Hist(k:256)/PB;
HA=(1/1-q)*log(sum(Pa.^q));
HB=(1/1-q)*log(sum(Pb.^q));
H=[H HA+HB];
end
[junk level]=max(H);
济南丝足
数据组织imgn=im2bw(mat2gray(img),level/256);
figure;
imshow(imgn)