[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. *"---------------------------------------------------------------------- *"*"本地接口: *…

洛谷p6771太空电梯

完全背包变形&#xff0c;外加排序&#xff0c;要学会变通&#xff0c;本题特殊之处&#xff1a;背包容量就是背包价值&#xff0c;要求的就是最大的背包容量&#xff0c;这需要我们找到真正的限制条件—物品数量和物品放置的限高 题目链接 AC code #include<bits/stdc.h&…

C++病毒【永久性】

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

JAVA基础整理(11)swagger

添加依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId&…

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

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

SQL布尔盲注、延迟注入和堆叠注入

什么是盲注 盲注的本质是猜解(所谓“盲”就是在你看不到返回数据的情况下能通过 “感觉” 来判断)&#xff0c;那能感觉到什么?答案是 : 差异(包括运行时间的差异和页面返回结果的差异 ) 原理 在页面中&#xff0c;如果正确执行了SQL语句&#xff0c;则返回一种页面&#x…

Linux防火墙相关命令(开启防火墙、关闭防火墙、添加ip白名单等)

查看防火状态systemctl status firewalld service iptables status暂时关闭防火墙systemctl stop firewalld service iptables stop永久关闭防火墙systemctl disable firewalld chkconfig iptables off启动防火墙systemctl start firewalld重启防火墙systemctl enable firewa…

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

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

自然人和法人区别

自然人是指在自然状态下出生的人&#xff0c;具有自然生物属性&#xff0c;是民法上的民事主体。自然人在民事法律关系中具有权利主体资格&#xff0c;享有民事权利并承担民事义务。每一个自然人都有自己的民事主体资格&#xff0c;具有独立的人格和民事权利能力&#xff0c;能…

k8s 部署 nocas 同时部署mysql

使用 ygqygq2 的 helm 模板部署 官方地址&#xff1a;https://artifacthub.io/packages/helm/ygqygq2/nacos 添加 helm 仓库 helm repo add ygqygq2 https://ygqygq2.github.io/charts/下载 helm 安装文件 helm pull ygqygq2/nacos解压 tar -zxvf nacos-2.1.6.tgz执行 hel…

移动端基础-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;那么贪心的想法很自然就是取…

vue3-router路由问题解决方案

Router路由跳转失败的解决法案 第一类&#xff0c;配置问题 问题代码 import { createRouter, createWebHistory } from vue-routerimport HOME from "/views/topic.vue" import LoginIn from "/components/LoginIn.vue"; import LoginUp from "/c…

由亚马逊云科技 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的提示…