[Python图像处理] 使用OpenCV创建色调图

使用OpenCV创建色调图

    • 色调映射和高动态范围成像
    • 应用色调映射
    • 相关链接

色调映射和高动态范围成像

高动态范围 (High Dynamic Range, HDR) 技术用于摄影成像,以再现比标准数字成像或摄影技术更大的动态范围的亮度。标准成像技术仅允许在一定范围内区分亮度,在范围之外,由于在明亮的区域没有差别,因此没有可见的特征,因为所有的东西都是纯白色的,而在黑暗的区域同样没有差别,因为所有东西都是纯黑的。图像中色调值(可测量光强度)的最大值和最小值之间的比率被称为动态范围。
由于打印和显示对比度的局限性,必须压缩输入 HDR 图像的扩展亮度范围才能使其可见,将 HDR 图像渲染到标准监视器或打印设备的方法称为色调映射。色调映射将图像的强度改变到高水平或高动态范围,降低 HDR 图像的整体对比度以便于在具有较低动态范围的设备或打印输出上显示,并且可以应用于生成具有保留的局部对比度的图像。

应用色调映射

在本节中,我们将学习如何使用 OpenCV 函数在 HDR 图像上应用色调映射。HDR 图像中像素的理论最大值可以是任意的。我们假设 HDR 图像是通过合并多个曝光图像创建的。
OpenCV 提供了四种色调映射算法实现:

  • Drago
  • Durand
  • Reinhard
  • Mantiuk

本节中,我们将介绍 DragoDurand 色调映射算法,色调音调映射算法的常见参数如下:

  • 参数 gamma 通过应用伽马校正来压缩动态范围:
    • γ = 1 γ= 1 γ=1:不进行校正
    • γ < 1 γ<1 γ<1:使图像变暗
    • γ > 1 γ> 1 γ>1:使图像变亮
  • 参数 saturation 用于增加或减少饱和量;当饱和度高时,颜色会丰富而强烈;饱和值接近零,使颜色淡如灰度图像
  • 参数 contrast 用于控制对比度

我们首先下载 HDR 图像 ( .hdr 文件),我们使用 HDR 图像作为输入,并使用色调映射算法显示该图像。

(1) 导入所需的库,并从磁盘中读取 HDR 图像:

import cv2
import numpy as np
#from skimage import img_as_ubyte
import matplotlib.pylab as plthdr_image = cv2.imread("snowman.hdr", -1)

(2) 使用 DragoToneMap 方法获取 BGR 彩色图像,将其转换为 RGB 图像。由于获得的图像的亮度较低,因此可以通过将其乘以一个正常数增加亮度:

tonemap_drago = cv2.createTonemapDrago(1.0, 0.7)
ldr_drago = tonemap_drago.process(hdr_image)
ldr_drago = 3 * ldr_drago
ldr_drago = cv2.cvtColor(ldr_drago, cv2.COLOR_BGR2RGB)

(3) 使用 DurandToneMap 方法获取 BGR 彩色图像,将其转换为 RGB 图像:

# tonemap_durand = cv2.createTonemapReinhard(1.5,4,1.0,1,1)
# ldr_durand = tonemap_durand.process(hdr_image)
# ldr_durand = 3 * ldr_durand
# ldr_durand = cv2.cvtColor(ldr_durand, cv2.COLOR_BGR2RGB)

(4) 最后,使用色调映射绘制从 HDR 图像获得的输出图像:

plt.figure(figsize=(20,20))
plt.subplot(111), plt.imshow(ldr_drago), plt.axis('off'), plt.title('Tone mapping with Drago\'s method', size=10)
# plt.subplot(212), plt.imshow(ldr_durand), plt.axis('off'), plt.title('Tone mapping with Durand\'s method', size=10)
plt.tight_layout()
plt.show()

HDR 图

相关链接

Python图像处理【1】图像与视频处理基础
Python图像处理【2】探索Python图像处理库
Python图像处理【3】Python图像处理库应用
Python图像处理【4】图像线性变换
Python图像处理【5】图像扭曲/逆扭曲
Python图像处理【6】通过哈希查找重复和类似的图像
Python图像处理【7】采样、卷积与离散傅里叶变换
Python图像处理【8】使用低通滤波器模糊图像
Python图像处理【9】使用高通滤波器执行边缘检测
Python图像处理【10】基于离散余弦变换的图像压缩
Python图像处理【11】利用反卷积执行图像去模糊
Python图像处理【12】基于小波变换执行图像去噪
Python图像处理【13】使用PIL执行图像降噪
Python图像处理【14】基于非线性滤波器的图像去噪
Python图像处理【15】基于非锐化掩码锐化图像
Python图像处理【16】OpenCV直方图均衡化
Python图像处理【17】指纹增强和细节提取
Python图像处理【18】边缘检测详解
Python图像处理【19】基于霍夫变换的目标检测

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

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

相关文章

SAP SHDB VLPOD 录屏带序列号的

考虑到交货单有多种情况 1个行项目 多个数量,需要对应多个序列号 多个行项目,多个数量,需要多个序列号 最终形成的FM如下 FUNCTION ZIF_BDC_VLPOD_RE_S. *"---------------------------------------------------------------------- *"*"本地接口: *…

C++病毒【永久性】

我最近发现&#xff0c;我2024年后就再也没有更新过 C#沙雕程序了。 今天我想通了&#xff0c;我要再更几期关于C#沙雕程序的文章。 开始做&#xff01; 这一次就直接上代码蚌&#xff01; 不用任何特定头文件。 #include <bits/stdc.h> #include <iostream> #…

探索设计模式的魅力:精准解读桥接模式-用桥接模式构建可扩展的软件系统

设计模式专栏&#xff1a;http://t.csdnimg.cn/nolNS 目录 一、了解桥接模式&#xff1a;探索抽象和实现的分离 1.1 开-闭原则 1.2 组合/聚合复用原则 1.3 定义 1.4 用意 1.5 基本思想 1.6 组成部分 1.7 桥梁模式的示意性系统的结构图 二、桥接模式的优势&#xff1a…

前端开发中不同语言【react-i18next】

目录 查看并设置语言 单页面&#xff1a;html lang ​编辑 浏览器 自定义翻译&#xff1a;react-i18next 设置 模块&#xff1a;staticData.ts 散(重复利用)&#xff1a;命名空间.json 应用 准备 html标签 查看并设置语言 单页面&#xff1a;html lang 英语: <…

移动端基础-vw适配

什么是vw 相对单位 相对视口的尺寸 vw:viewport width 换算 1vw1/100视口宽度 vw不需要向rem一样检查视口宽度 若视口宽为375px 1vw3.75px vw与vmin的区别 vmin更照顾横竖屏问题 1vw是视口宽度的100%&#xff0c;而vmin是找宽度和高度中最小的那个&#xff0c;这样横屏…

RFID快递物流包装仓储管理与追踪解决方案

RFID技术在快递物流、包装和仓储管理领域有着广泛的应用&#xff0c;通过为每个货物、托盘、周转箱、围板箱等物品添加RFID标签&#xff0c;为它们赋予独特的身份识别码&#xff0c;并通过RFID读写器在各个仓储业务节点进行管理和追踪&#xff0c;RFID技术具有远距离快速识别的…

CSS 闪电按钮效果

<template><view class="const"><div class="voltage-button"><button>闪电按钮</button><svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox=&q…

python中的web框架介绍

目录 一&#xff1a;框架介绍 二&#xff1a;框架安装 Python中有许多流行的Web框架,以下是一些最受欢迎的框架&#xff1a; 一&#xff1a;框架介绍 1: Django Django是一个高级Python Web框架&#xff0c;它鼓励快速开发和干净的设计。Django的主要特点是其强大的ORM&am…

L1-037 A除以B-java

输入样例1&#xff1a; -1 2输出样例1&#xff1a; -1/2-0.50输入样例2&#xff1a; 1 -3输出样例2&#xff1a; 1/(-3)-0.33输入样例3&#xff1a; 5 0输出样例3&#xff1a; 5/0Error java import java.util.*; class Main{public static void main(String[] args){Sc…

马尔科夫链--基础知识

马尔可夫链&#xff08;Markov Chain&#xff09;是一种数学系统&#xff0c;它经过从一个状态到另一个状态的转换&#xff0c;这些转换遵循马尔可夫性质&#xff0c;即未来的状态只依赖于当前的状态&#xff0c;而与过去的状态&#xff08;即如何到达当前状态&#xff09;无关…

力扣 121. 买卖股票的最佳时机

题目来源&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ 好久没写代码了&#xff0c;啥啥都忘了 C题解1&#xff1a;贪心算法。&#xff08;来源代码随想录&#xff09; 因为股票就买卖一次&#xff0c;那么贪心的想法很自然就是取…

由亚马逊云科技 Graviton4 驱动的全新内存优化型实例 Amazon EC2 实例(R8g),现已开放预览

下一代 Amazon Elastic Compute CloudAmazon EC2) 实例的预览版现已公开 提供。全新的 R8g 实例 搭载新式 Graviton4 处理器&#xff0c;其性价比远超任何现有的内存优化实例。对于要求较高的内存密集型工作负载&#xff0c;R8g 实例是不二之选&#xff1a;大数据分析、高性能数…

第七届西湖论剑·中国杭州网络安全技能大赛 AI 回声海螺 WP

第七届西湖论剑中国杭州网络安全技能大赛-AI-回声海螺 开题&#xff0c;提示输入密码给FLAG。 这个回声海螺应该是个AI&#xff0c;就是复读机&#xff0c;应该是想办法从中骗出密码。 感觉这题不像是AI&#xff0c;也没用啥模型&#xff0c;应该是WEB。或者是说类似于AI的提示…

【Rust日报】2024-02-02 致力于编程,无论你使用哪种语言

AWS SDK for Rust, 2024 Feb2nd released AWS SDK for the Rust Programming Language 2024年2月最新 Releases&#xff1a; Service Features: aws-sdk-sagemaker (1.20.0): Amazon SageMaker Canvas 现在通过 CanvasAppSettings 参数支持生成式 AI 设置。这允许您在 Canvas 工…

AIGC实战——归一化流模型(Normalizing Flow Model)

AIGC实战——归一化流模型 0. 前言1. 归一化流模型1.1 归一化流模型基本原理1.2 变量变换1.3 雅可比行列式1.4 变量变换方程 2. RealNVP2.1 Two Moons 数据集2.2 耦合层2.3 通过耦合层传递数据2.4 堆叠耦合层2.5 训练 RealNVP 模型 3. RealNVP 模型分析4. 其他归一化流模型4.1 …

小红书种草图文怎么制作?纯干货

一篇优质的小红书种草图文&#xff0c;不仅能提升产品销量&#xff0c;还能为品牌带来广泛的关注。如何制作出高质量的小红书种草图文呢&#xff1f;本文伯乐网络传媒将为你一一揭晓。 一、小红书种草图文制作要点 1. 确定目标受众和主题 明确目标受众是谁&#xff0c;他们有何…

微服务入门篇:Nacos注册中心(Nacos安装,快速入门,多级存储,负载均衡,环境隔离,配置管理,热更新,集群搭建,nginx反向代理)

目录 1.Nacos安装1.官网下载2.解压到本地3.启动nacos 2.Nacos快速入门1.在父工程中导入nacos依赖2.给子项目添加客户端依赖3.修改对应服务的配置文件4.启动服务&#xff0c;查看nacos发现情况 3.Nacos服务多级存储模型4.NacosRule负载均衡5. 服务实例的权重设置6.环境隔离&…

PDF控件Spire.PDF for .NET【安全】演示:检测 PDF 文档是否受密码保护

Spire.PDF for .NET 是一款独立 PDF 控件&#xff0c;用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库&#xff0c;开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理&#xff0c;且无需安装 Adobe Acrobat。 E-iceblue 功能类库Spire 系列文档处…

2024数学建模美赛F题Reducing Illegal Wildlife Trade原创论文讲解(含完整python代码)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了数学建模美赛本次F题目非法野生动物贸易完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 F题论文共42页&…

Qt|实现时间选择小功能

在软件开发过程中&#xff0c;QtDesigner系统给出的控件很多时候都无法满足炫酷的效果&#xff0c;前一段时间需要用Qt实现选择时间的小功能&#xff0c;今天为大家分享一下&#xff01; 首先看一下时间效果吧&#xff01; 如果有需要继续往下看下去哟~ 功能 1&#xff1a;开…