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

news2024/10/6 5:56:35

目录

1.程序功能描述

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

3.核心程序

4.本算法原理

5.完整程序


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:R
    for j = 1:C
        if im(i,j) > omax
           im2(i,j) = K0*omax;
        end
        if im(i,j) <= omax & im(i,j) >= omin
           im2(i,j) = K0*im(i,j);
        end        
        if im(i,j) < omin
           im2(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;% 结合裁剪图像熵与原始图像熵计算最终熵值
16_044m

4.本算法原理

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

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

在HDR图像评价中,信息论方法主要通过以下几个方面发挥作用:

        局部熵:考虑到人眼对图像不同区域的敏感度不同,局部熵被用来评估图像的局部信息丰富度。对于图像的每个像素块,计算其灰度直方图的熵,以此反映局部细节的复杂度。

       全局熵:衡量整幅图像的信息量,反映了图像整体的动态范围和对比度。对于HDR图像,高全局熵通常意味着更丰富的细节和更宽的亮度范围。

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

5.完整程序

VVV

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv10改进 | 卷积模块 | 将Conv替换为轻量化的GSConv【轻量又涨点】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a;《YOLOv8改进有效…

Docker搭建ELK

docker安装ElasticSearch 创建网络 #这里先创建一个网络&#xff1a;因为我们还需要部署kibana容器、logstash容器&#xff0c;需要让这些容器互联。 docker network create elk-net#查看网络 docker network ls下载ES镜像 #搜索镜像 docker search elasticsearch #下载镜像…

使用ChatGPT提升编程效率:程序员的最佳实践分享

在这个信息技术飞速发展的时代&#xff0c;编程已经成为了越来越多人的必备技能。无论你是初学者&#xff0c;还是经验丰富的开发者&#xff0c;都可能会遇到编程中的各种问题和挑战。幸运的是&#xff0c;AI 技术的进步让我们有了新的解决工具——ChatGPT。作为一名科技博客博…

OAuth2.0 三方登录(Google登录)

一、OAuth2.0流程 &#xff08;A&#xff09;客户端向从资源所有者请求授权。&#xff08;B&#xff09;客户端收到授权许可&#xff0c;资源所有者给客户端颁发授权许可&#xff08;比如授权码code&#xff09;&#xff08;C&#xff09;客户端与授权服务器进行身份认证并出示…

基于SpringBoot的学生综合测评系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架 工具&#xff1a;MyEclipse、Tomcat 系统展示 首页 系统首页&#xff0c;提供综合…

吴恩达机器学习作业ex5:正则化线性回归和偏差VS方差(Python实现)详细注释

文章目录 1.正则化线性回归1.1 可视化数据集1.2 正则化线性回归成本函数1.3 正则化线性回归梯度1.4 拟合线性回归 2 偏差-方差2.1 学习曲线 3.多项式回归3.1 学习多项式回归3.2 正则化参数的调整3.3 使用交叉验证集选择 λ3.4 计算测试集误差 1.正则化线性回归 在练习的前半部…

RT-Thread 实时系统介绍

介绍 RT-Thread 是一款开源的实时操作系统&#xff0c;主要面向物联网设备。它支持多种芯片架构&#xff0c;具有安全、低功耗、智能、可伸缩的特性。RT-Thread 拥有超过16年的技术积累&#xff0c;广泛应用于各行业&#xff0c;装机量达数十亿台。它提供了包括设备虚拟文件系…

Python学习打卡:day15

day15 笔记来源于&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了 目录 day15110、数据分析案例步骤 1 —— 文件读取data_define_108.pyfile_define_108.py 111、数据分析案例步骤二——数据计算112、数据分析案例步骤…

医生出诊排班挂号微信小程序系统源码

便捷就医新选择 解决医院门诊快速管理病人资料的问题&#xff0c;微信里可以查看门诊科室和概况​ &#x1f3e5; 引言&#xff1a;就医新体验 在繁忙的都市生活中&#xff0c;看病就医常常成为我们生活中的一大难题。不过&#xff0c;随着科技的进步&#xff0c;医生出诊排班…

突然断供中国!OpenAI变CloseAI,用户连夜搬家

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 OpenAI&#xff0c;这把变成CloseAI了。 6月25日早上&#xff0c;有中国开发者表示收到了来自OpenAI的“警告信”&#xff1a;将采取额外措施停止其不支持的地区的API&#xff08;应用接口&#xff09…

LINKAI工作流的建立与调试,用到COW项目的微信机器人上

连接时需要把右边的号连到下一个框的输入&#xff0c;开始与结束是默认的。 可以单独调试模块 可以对模块进行个性化定义 最后进行总流程调试 将这里的code放到config.json文件中 接着又做了一个较复杂的工作流DgPz9wJaoh   QlCc34a8bP 原项目网址&#xff1a; https:/…

JUC 队列

常见的阻塞队列 Queue接口 public interface Queue<E> extends Collection<E> {//添加一个元素&#xff0c;添加成功返回true, 如果队列满了&#xff0c;就会抛出异常boolean add(E e);//添加一个元素&#xff0c;添加成功返回true, 如果队列满了&#xff0c;返回…

记录Gstreamer的uridecodebin可以自动选择硬解码器

记录&#xff1a; uridecodebin3 和uridecodebin优先硬解码 这两个插件&#xff0c;本来是负责动态选择合适的解码器来处理特定的媒体流&#xff0c;使用案例&#xff1a; gst-launch-1.0 uridecodebin urirtsp://192.168.1.120:8554/test ! glimagesink -v gst-launch-1.0 …

Flutter页面状态保留策略

目的: 防止每次点击底部按钮都进行一次页面渲染和网络请求 1. 使用IndexedStack 简单,只需要把被渲染的组件外部套一层IndexedStack即可 缺点: 在应用启动的时候,所有需要保存状态的页面都会直接被渲染,保存起来. 对性能有影响 2. 使用PageController 实现较为复杂,但是不用…

程序员必备的ChatGPT技巧:从代码调试到项目管理

近年来&#xff0c;随着人工智能技术的迅猛发展&#xff0c;ChatGPT作为一种强大的对话式AI工具&#xff0c;已经广泛应用于各个领域。而对于程序员来说&#xff0c;ChatGPT不仅可以帮助他们解决编程中的各种问题&#xff0c;还能在项目管理中发挥重要作用。本篇博客将详细介绍…

电脑高手推荐:三款超实用软件,让你的电脑如虎添翼!

7Zip 7-Zip是一款免费且开源的文件压缩工具&#xff0c;支持多种文件格式&#xff0c;包括其自带的7z格式、ZIP、GZIP、BZIP2和TAR等。该软件由Igor Pavlov于1999年开发&#xff0c;具有高压缩比的特点。7-Zip不仅可以在Windows操作系统上使用&#xff0c;还可以在Unix-like的操…

【嵌入式 RT-Thread】一种优雅的使用 [互斥锁] 和 [信号量] 解决数据多路并发思路

rt-thread 中的信号量和互斥锁在工业开发项目中的应用&#xff0c;本博文主要介绍了一种优雅的使用 [互斥锁] 和 [信号量] 解决数据多路并发思路 2024-06 by 积跬步、至千里 目录 0. 个人简介 && 授权须知1. 工业场景描述1.1 工业数据采集需求1.2 总线协议与数据采集 2…

第 12 课:基于隐语的VisionTransformer框架

基于之前MPC的基础知识&#xff0c;本讲主要内容是MPCViT基于SecretFlow的VisionTransformer框架&#xff0c;主要从神经网络架构&#xff0c;隐私推理框架和实验结果三方面介绍。 一、MPCViT&#xff1a;安全且高效的MPC友好型 Vision Transformer架构 MPCViT隐私推理总体框架…

【LeetCode 274】H指数

1. 题目 2. 分析 这题没啥难度&#xff0c;需要熟练运用Python API。 sort(reverseTrue)可以用于排序List&#xff0c;并且倒序排序。 3. 代码 class Solution:def hIndex(self, citations: List[int]) -> int:citations.sort(reverseTrue)res 0for idx,cite in enume…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接&#xff1a;安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…