基于信息论的高动态范围图像评价算法matlab仿真

news/2025/2/25 21:43:20/文章来源:https://www.cnblogs.com/softcodes/p/18737345

1.程序功能描述
基于信息论的高动态范围图像评价算法matlab仿真,利用一种自然图像的概率模型对图像的熵与成像动态范围之间的关系进行了数值模拟,得到了具有普遍意义上的理想成像动态范围的计算公式,公式指出了对自然景物完善成像所需的最大动态范围;给出了图像熵与动态范围之间的关系。

2.测试软件版本以及运行结果展示
MATLAB2022A版本运行

 

入射的物方景物光强概率分布采用式所述的双高斯分布模型。如图2所示的,其中光强范围
规定为[1:65535]。

 

 

从该图可以明确看到在[μ-3σ,μ+3σ]时图像的熵渐趋于稳定。即此时的系统动态范围可以认为已经足够对当前景物成像。

 

可以看到T与J存在着近似线性的关系,对二者进行线性拟合,得到二者之间的关系。这样,就可以得到成像系统动态范围DR与图像的熵之间的关系.

(完整程序运行后无水印)

3.核心程序

% 图像裁剪处理,限制像素值在[omin, omax]之间
K0    = 0.8;
[R,C] = size(im);
im2   = im;
for i = 1:Rfor j = 1:Cif im(i,j) > omaxim2(i,j) = K0*omax;endif im(i,j) <= omax & im(i,j) >= ominim2(i,j) = K0*im(i,j);end        if im(i,j) < ominim2(i,j) = K0*omin;end          end
end
im3 = im2;
% 计算裁剪后图像的熵
[row,col] = size(im3);
[count,x] = imhist(im3); 
total     = row*col; 
entropy1  = 0; 
for i=1:256 p(i)=count(i)/total; if p(i)~=0 logp(i)=log2(p(i)); entropele=-p(i)*logp(i); entropy1=entropy1+entropele; end 
end [row,col] = size(im);
[count,x] = imhist(im); 
total     = row*col; 
entropy = (1-K0)*entropy1 + K0*entropy2;% 结合裁剪图像熵与原始图像熵计算最终熵值

  

4.本算法原理
高动态范围图像(High Dynamic Range Imaging, HDR)相较于传统的低动态范围图像(Low Dynamic Range, LDR),能够呈现更广阔的亮度范围和色彩细节,这对于摄影、电影制作、医疗成像等多个领域至关重要。评价HDR图像的质量是一项复杂任务,因为它不仅要考虑图像的客观属性,还要顾及人的主观感受。基于信息论的方法,特别是利用熵和互信息等概念,为HDR图像评价提供了一个理论基础,旨在量化图像的信息内容、细节保留以及视觉感知质量。

信息论是研究信息的量化、存储、传输和处理的学科,由克劳德·香农创立。其中,熵(Entropy)是衡量信息不确定性的度量,而互信息(Mutual Information)则衡量两个随机变量之间的相互依赖程度。

 

HDR图像的亮度和对比度是决定图像质量的关键因素。通过分析不同亮度区间内的熵分布,可以评估图像在不同亮度层次上的信息保留情况。对比度的熵分析则关注于不同亮度区域间的边界信息,高对比度边界通常携带更多信息,有助于提高图像的可识别性和视觉质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889774.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BloomFilter详解

目录BloomFilter 原理:问题引入:黑名单管理程序哈希、哈希函数BloomFilter :3.4 BloomFilter 的缺陷、改进:代码实现黑名单blacklist.py:普通的实现方法set.py:哈希函数hash.py:4.4 BloomFilter 实现方法bloomfilter.py: BloomFilter 原理: ​ 我们将从哈希函数开始…

【ABP】项目示例(4)——领域服务

领域服务 在上一章节中,已经完成了仓储的设计,在这一章节中,实现领域服务,即业务的核心逻辑 领域服务主要处理特定领域的业务逻辑,对内协调和整合聚合根与各个实体的业务关系,对外作为业务的边界,供应用服务组合来提供完整复杂的功能 规约 在名称为General.Backend.Doma…

YOLOv10 解析与地平线 征程 6模型量化

一,YOLOv10 解析 1.简介 近些年来,研究人员对 YOLO 的架构设计、优化目标、数据增强策略等进行了探索,取得了显著进展。然而,后处理对非极大值抑制(NMS)的依赖阻碍了 YOLO 的端到端部署,并对推理延迟产生不利影响。此外,YOLO 中各个组件的设计缺乏全面彻底的检查,导致…

SemanticKernel之Chat

去年写过几过几篇关于SemanticKernel的文章,由于正式发布的版本与之前的版本变化较大,加上前的东京《生成式AI应用开发》活动,想把演示的Demo逐一分享出来,的以再次开启SemanticKernel系统。下面是一个Chat的例子,用户提问,如果本地有固定数据能对应,直接返回,如果没有…

7、添加特效

去除画面logo 复制一份 拖动模糊特效到复制的片段中 右键分离音频或者快捷键【ctrl+shift+s】 删除音频 添加原创特效,特效随机 有音乐的去除音乐 适当拖动放大 调整透明度 开幕特效 三秒 调整参数后,复制双份 画面特效和人物特效二选一 画面特效需要修改参数

Prompt升级

前两篇关于Prompt的文章分别从提示词规则建议和具体框架角度说明了一下Prompt的使用技巧,接下来可以说是对框架式提示词的的进一步升级——结构化提示词。 结构化定义: 对信息进行组织,使其遵循特定的模式和规则,从而方便有效理解信息。 结构化提示词语法:这个结构支持 Mark…

Spring复习-事务

事务概述 Spring事务编程概述 事务是开发中必不可少的东西,使用JDBC开发时,我们使用connnection对事务进行控制,使用MvBatis时,我们使用SqlSession对事务进行控制,缺点显而易见,当我们切换数据库访问技术时,事务控制的方式总会变化,Spring 就将这些技术基础上,提供了统…

Prompt进阶

在Prompt入门里,我们分享了OpenAI官方给出的提示词建议,但这些建议基本上是指导性的,方向性的,概念性的,虽然对我们编写提示词有很大帮助,但究竟我们的提示词好还是不好,效率怎么性,很大程度上要看每个人的理解,和提示词输出。那么有没有一个可操作性的,方法论的,谁…

P1174 打砖块

链接 https://www.luogu.com.cn/problem/P1174 思路刚开始的思路:设置dp[i][j]:前i列使用了j颗子弹,那么递推dpi,j=max(dpi,j,dpi-1,k+maxj-k),然后统计在第i列使用了j-k颗子弹会多出来多少颗,把这些遍历加到前面,见代码。喜提70pts。但是搞不懂哪里错了。 看了评论区的dp:70…

redis - [06] redis-benchmark性能测试

题记部分 001 || 参数含义 002 || 测试100个并发,100000个请求 启动redis-server redis-server /etc/redis.conf 进行性能测试 redis-benchmark -h localhost -p 6379 -c 100 -n 100000

百万架构师第四十三课:Nginx:Nginx 应用实战|JavaGuide

百万架构师系列文章阅读体验感更佳 原文链接:https://javaguide.net 公众号:不止极客 课程目标:Nginx 反向代理功能配置 Nginx 负载均衡实战 Nginx 动静分离配置 Nginx 配置文件分析 Nginx 多进程模型原理 Nginx 高可用集群实战反向代理​ 我们把请求发送到 proxy (代理服务…

大三下每日打卡003

今天配置了python的虚拟环境anaconda想尝试一下yolov8来实现识别