zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    老大叔开博感想
    模板
    Codeforces Round #685 (Div. 2) 题解
    CF830E Perpetual Motion Machine 题解
    THUWC2020游记
    数论
    后缀数组学习笔记
    Codeforces Round #466 (Div. 2)
    博客停写,搬家到www.54kaikai.com
    lda 主题模型--TOPIC MODEL--Gibbslda++结果分析
  • 原文地址:https://www.cnblogs.com/tiandsp/p/3071901.html
Copyright © 2011-2022 走看看