matlab练习程序(图像局部熵)

更新时间:2023-07-20 19:31:12 阅读: 评论:0

落花成冢
matlab练习程序(图像局部熵)
⼜被国内论⽂坑了,话说写论⽂要有良⼼。
今天在看局部熵⽅⾯的内容,看论⽂中介绍的内容感觉局部熵挺容易了,于是就有了实现的想法,结果效果⾮常糟糕。你若离去后会无期
得到的⼏乎是⼀张空⽩的图⽚,就像下⾯⼀样:
究其原因是各种论⽂上都写了这样⼀个公式:
这⾥f(i,j)就是在m*n这个局部的像素,这个没问题,不过这⾥的p是什么东西,按这⾥的定义p是当前像素灰度占局部总灰度的概率,⽽p原本应该是局部直⽅图,也就是当前像素灰度个数占局部像素总个数的概率,所以这⾥的意义我也不明⽩了,结果按公式计算就得到了上图,和各种论⽂中的图都不⼀样。
⽽真正的公式应该是这样:
仓鼠的习性熵的公式本来不就是这样么,这⾥的p是归⼀化后的局部直⽅图。
这样运⾏的结果就正确了,和matlab系统提供的entropyfilt函数结果是⼀样的。
⾃⼰函数处理的
系统函数处理的
ppic9k
matlab代码如下:
clear all;
clo all;
clc;
img=imread('lena.jpg');
[m n]=size(img);
w=3;    %模板半径
imgn=zeros(m,n);
for i=1+w:m-w
for j=1+w:n-w
Hist=zeros(1,256);
for p=i-w:i+w
for q=j-w:j+w
Hist(img(p,q)+1)=Hist(img(p,q)+1)+1;    %统计局部直⽅图end
end
Hist=Hist/sum(Hist);
报春儿歌如何成为党员for k=1:256
if Hist(k)~=0
imgn(i,j)=imgn(i,j)+Hist(k)*log(1/Hist(k));  %局部熵end
仙女湖景区
end
%{
p=sum(sum(img(i-w:i+2,j-w:j+w)));  %这⾥是按第⼀个公式写的        s=img(i-w:i+w,j-w:j+w)/p;
imgn(i,j)=-sum(sum(s.*log(s)));
%}
end
end
文明礼仪班会教案imshow(imgn,[])
imgn=entropyfilt(img);        %系统的局部熵函数
figure;
imshow(imgn,[])

本文发布于:2023-07-20 19:31:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1089518.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:局部   像素   结果   灰度   函数   公式   系统   个数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图