图像白平衡

目录

效果

背景

什么是白平衡?

实现原理

将指定图色调调整为参考图色调主要流程

示例代码


效果

将图一效果转换为图二效果色调:

调整后,可实现色调对换

背景

现有两张图像,色调不一致,对于模型重建会有影响。因此需要将不符合需求的image进行白平衡,色调统一。

什么是白平衡?

图像信号处理算法(Image Signal Process,ISP),对图像传感器输出的原始图像进行处理,得到较好的场景还原效果。

其中,3A算法包括:AWB(自动白平衡)、AE(自动曝光)、AF(自动对焦)。

白平衡White Balance,简称WB,是一种相机设置,用于校正照片或视频中的色彩。

白平衡通过调整红、绿、蓝三种颜色的比例,补偿光源的色片,使得图像中白色看起来是真正的白色,从而使整个图像的色彩更加自然准确。

将图像A转换为图像B的色调,这是一个色彩迁移(Color Transfer的问题。色彩迁移旨在将源图像的颜色风格应用到目标图像中,使得目标图像看起来像是通过类似的光线或色调条件拍摄的。

实现原理

色彩迁移的基本原理是通过分析和调整图像的颜色分布,使源图像的颜色特征(如均值和方差)与目标图像匹配。通常,色彩迁移通过以下几个步骤实现:

  • 颜色空间转换:将RGB图像转换到一种颜色空间,如LAB或LUV。这些颜色空间更适合进行色彩调整,因为它们将亮度与颜色信息分离。
  • 统计特征匹配:计算源图像和目标图像在新颜色空间中的统计特征(如均值和方差)。然后,将源图像的颜色分布调整为与目标图像匹配。
  • 颜色映射:将调整后的颜色分布映射回原始颜色空间,生成最终的图像。
  • 颜色空间逆变换:将图像从LAB或LUV颜色空间转换回RGB,以获得最终结果。

将指定图色调调整为参考图色调主要流程

(1)图像从BGR转换到LAB颜色空间(因为LAB空间更适合进行颜色调整操作)

(2)分别计算参考图和源图 的 均值和标准差

(3)对源图进行标准化,并将参考图的均值和标准差 应用到源图

(4)将调整后的LAB图像转换回BGR颜色空间

示例代码

import cv2import numpy as npdef match_color(source, reference):# 将图像从BGR转换为LAB颜色空间source_lab = cv2.cvtColor(source, cv2.COLOR_BGR2Lab)reference_lab = cv2.cvtColor(reference, cv2.COLOR_BGR2Lab)# 计算参考图像的均值和标准差ref_mean, ref_std = cv2.meanStdDev(reference_lab)ref_mean = ref_mean.reshape((1, 1, 3))ref_std = ref_std.reshape((1, 1, 3))# 计算源图像的均值和标准差src_mean, src_std = cv2.meanStdDev(source_lab)src_mean = src_mean.reshape((1, 1, 3))src_std = src_std.reshape((1, 1, 3))# 对源图像进行标准化,并应用参考图像的均值和标准差lab_adjusted = (source_lab - src_mean) * (ref_std / src_std) + ref_mean# 将调整后的LAB图像转换回BGR颜色空间lab_adjusted = np.clip(lab_adjusted, 0, 255).astype(np.uint8)result = cv2.cvtColor(lab_adjusted, cv2.COLOR_Lab2BGR)return result# 读取源图像和参考图像,将image_B色调调整为image_A色调source_image = cv2.imread('image_B.png')reference_image = cv2.imread('image_A.png')# 调整色调result_image = match_color(source_image, reference_image)# 保存结果cv2.imwrite('result_1.jpg', result_image)

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

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

相关文章

Java体系中的继承

前言 #继承(Inheritance) 是面向对象编程(OOP)中的一个重要概念,它允许一个类(称为子类或派生类)可以从另一个类(称为父类、基类或超类)继承属性(数据&#…

Unexpected token d in JSON at position 5, check bodyParser config错误解决

错误原因:json格式不对 { desc"设备1", iotProjectId11 } 解决:通过json在线校验格式校验json格式,找出错误原因,修改 在线JSON校验格式化工具(Be JSON) 修改: {"desc": &…

『功能项目』AssetBundle上传加载u3d模型【23】

本章开始做游戏的登陆界面,运用热更新的AssetBundle上传加载u3d模型 首先在22骑乘坐骑项目基础上重新创建一个场景 重命名为RegistrationUI 在资源商店下载一个场景 选择一个免费资源场景导入 进入新导入的场景 完全解压缩后重命名为ResUIScene 将颜色调成为蓝色调…

强制性国标!上海控安参编《汽车整车信息安全技术要求》正式发布

8月23日,上海控安参编的《GB 44495-2024 汽车整车信息安全技术要求》正式发布,标准将于2026年1月1日正式实施。 汽车整车信息安全技术要求 《汽车整车信息安全技术要求》由工业和信息化部归口,委托全国汽车标准化技术委员会智能网联汽车分会…

13、Django Admin创建两个独立的管理站点

admin文件 from .models import Epic, Event, EventHero, EventVillain from django.contrib.admin import AdminSiteclass EventAdminSite(AdminSite):site_header "Events管理"site_title "欢迎您!"index_title "管理员"even…

学习之MySQL函数(字符串,数值,日期,流程)

字符串函数 函数是指一段可以直接被另一段程序或代码 案例: – 1、由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0、比如:1号员工的工号应该为00001. update emp set worknolpad(workno, 5, 0) 运…

2024 年全国大学生数学建模竞赛(国赛)浅析

需要完整资料,请关注WX:“小何数模”! (需要完整B、C和E题资料请关注WX:“小何数模”,获取资料链接!) 本次万众瞩目的全国大学生数学建模赛题已正式出炉,无论是赛题难度…

2024 数学建模高教社杯 国赛(A题)| “板凳龙”舞龙队 | 建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用等距螺线,多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍&am…

Android 下的 XML 文件(概念理解、存储位置理解)

一、XML 1、XML 概述 XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言 类似于 HTML,但旨在传输和存储数据,而不是显示数据,且基本语法都是标签 2、XML 的特点 &am…

记录ssl epoll的tcp socket服务端在客户端断开时崩溃的问题

文章目录 当客户端关闭后,Epoll 的 TCP socket 服务端会收到两次断开事件可能有以下原因及解决方法:原因分析解决方法 问题ssl socket服务端代码出错现象第一次尝试修改正确改法附上客户端代码 记录ssl epoll的tcp socket服务端在客户端断开时接收到多次…

进程的那些事——了解进程(虚拟地址空间)

目录 前言 一、程序地址空间(虚拟地址空间) 二、虚拟地址寻找物理内存 1.页表 总结 前言 提示:这里可以添加本文要记录的大概内容: 程序和进程之间的区别: 进程:对用户而言,进程是运行中的…

web群集--nginx常见的几种负载均衡调度算法的配置过程和效果展示

文章目录 前言环境前置配置httpd主机tomcat主机 负载均衡调度算法1.轮询配置过程效果展示 2.加权轮询配置过程效果展示 3. IP哈希(IP Hash)配置过程效果展示 4. 最少连接(Least Connections)配置过程效果展示 5.加权最小连接这个在…

25考研人数预计下降?这一届考研有哪些新趋势?

2025年考研时间线: 2024年9月:公共课及各院校考试大纲公布; 2024年9月下旬:预报名; 2024年10月:正式报名; 2024年11月:线上/线下确认; 2024年12月中下旬&#xff1a…

如何批量修改图片的名称,高效修改图片名的软件

图片存在我们电脑上,有的时候由于某些原因,可能需要对图片进行大批量的名称修改,这个时候如果我们使用系统的重命名来做的话,它只能一个一个修改,想要批量修改,只能使用专门的命令,不仅复杂&…

虚幻5|C++第三人称射击(1)添加摄像机

一.在C类创建一个一个角色类蓝图,命名为BasePlayer 1.得到cpp和h文件 2.打开BasePlayer.h,定义摄像机内容 编译以下代码,定义摄像机和摄像机组件 private: //定义摄像机 UPROPERTY(VisibleAnywhere,BlueprintReadOnly,Category"…

深入学习电路基础:从理论到实践

引言 电路是电子学的核心,也是现代科技的基石。从简单的灯泡开关到复杂的计算机处理器,电路在各类电子设备中都起到了至关重要的作用。深入学习电路知识不仅有助于理解电子设备的工作原理,还能够为实际设计和开发电子产品打下坚实的基础。 …

qt配合halcon深度学习网络环境配置

1.开发环境qt6,编译器MSCV2019,网络是halcon的对象检测,halcon用20. 2.建立qt项目 3.到halcon安装目录下复制include,lib这两个文件夹到qt项目中进行引用 4.引用到halcon静态库后,到halcon运行目录下找到静态库对应dll文件&…

STM32-PWM驱动舵机——HAL库

什么是舵机? 舵机,也叫伺服电机,在嵌入式开发中,舵机作为一种常见的运动控制组件,具有广泛的应用。 舵机型号介绍: 市面上常见的舵机型号有 SG90、MG90S、MG995、MG996R 等等,主要是扭矩大小…

低代码平台赋能:烟花鞭炮企业数字化转型新篇章

随着数字化转型的浪潮席卷全球,传统制造业正面临着前所未有的变革机遇。烟花鞭炮行业,作为承载深厚文化底蕴与独特工艺的传统产业,也不例外。近年来,我国政府高度重视中小企业数字化转型,出台了一系列扶持政策&#xf…

pdf在线转换成word免费版,一键免费转换

在日常的学习和办公中,PDF文件和Word文档是我们离不开的两种最常见的文件,而PDF与Word文档之间的转换成为了我们日常工作中不可或缺的一部分。无论是为了编辑、修改还是共享文件,掌握多种PDF转Word的方法都显得尤为重要。很多小伙伴关心能不能…