matlab練習程序(Renyi熵)


Renyi熵是對通常的香農熵的擴展,算是q階廣義熵。公式如下:

其中P和香農熵公式中的P一樣,是概率。當q=1時公式退化為香農熵公式。(如何證明?看wiki吧

有用此公式尋找圖像最佳二值化閾值的。

首先定義前景區域A,背景區域B。

那么前景與背景區域像素相應的Renyi熵就如下定義:

其中k是當前取的灰度級,P(A)是像素在A區域的概率,P(B)類似。當然,這里說區域,不是指空間區域,是像素灰度級區域。

最后圖像Renyi熵求最佳閾值定義如下:

這里得到的K就是分割閾值。

分割效果如下:

原圖:

分割后:

在編程時還需要確定階數q,我取的是2。

matlab代碼如下:

clear all;
close all;
clc;

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM