当前位置: 首页 > news >正文

OpenCV计算摄影学(16)调整图像光照效果函数illuminationChange()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

对选定区域内的梯度场应用适当的非线性变换,然后通过泊松求解器重新积分,可以局部修改图像的表观照明。

cv::illuminationChange 是 OpenCV 中用于调整图像光照效果的一个函数。通过这个函数,你可以修改图像中的光照分布,以达到改善图像视觉效果或者为图像处理任务做准备的目的。

函数原型

void cv::illuminationChange 	
(
 	InputArray  	src,
	InputArray  	mask,
	OutputArray  	dst,
	float  	alpha = 0.2f,
	float  	beta = 0.4f 
) 		

参数

  • 参数src 输入8位3通道图像。
  • 参数mask 输入8位1或3通道图像。
  • 参数dst 与src大小和类型相同的输出图像。
  • 参数alpha 值范围在0到2之间。
  • 参数beta 值范围在0到2之间。

这对于突出显示曝光不足的前景对象或减少镜面反射非常有用。

代码示例

#include <opencv2/opencv.hpp>

int main()
{
    // 加载输入图像
    cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/jiangnan.jpg" );

    // 加载掩膜图像
    cv::Mat mask2 = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/mask.png", cv::IMREAD_GRAYSCALE );

    

    // 确保图像被正确加载
    if ( src.empty() || mask2.empty() )
    {
        std::cout << "图像加载失败,请检查路径是否正确。\n";
        return -1;
    }

    // 调整原始图像的大小
    cv::Mat mask;
    cv::resize(mask2, mask, src.size());

    cv::Mat dst;
    float alpha = 0.2f;  // 根据需要调整
    float beta  = 0.4f;  // 根据需要调整

    // 应用illuminationChange函数
    cv::illuminationChange( src, mask, dst, alpha, beta );

    // 显示结果
    cv::imshow( "Original Image", src );
    cv::imshow( "Illumination Changed", dst );
    cv::waitKey( 0 );
    return 0;
}

运行结果

在这里插入图片描述

相关文章:

  • BambuStudio学习笔记:KDTreeIndirect类
  • 数据库复习(第五版)- 第四章 数据库安全性
  • LeetCode hot 100—二叉树的中序遍历
  • 【JavaEE】SpringMVC简单练习
  • GTX 50系显卡cuda、pytorch环境配置
  • VMware ESX曝3个0Day漏洞,已被黑客利用
  • 股指期货的主要用途有哪些?
  • 百度权重有什么用?如何查看百度权重?
  • 20250306JIRA添加企业微信邮箱通知
  • C++ primier plus 第七节 函数探幽第一部分
  • Stable Diffusion教程|快速入门SD绘画原理与安装
  • 文本处理Bert面试内容整理-如何使用BERT进行微调?
  • linux0.11内核源码修仙传第四章——head.s
  • 长轮询和短轮询的区别?
  • WebAssembly技术及应用了解
  • 【硬件IIC与软件IIC在程序实现上的核心区别】结合STM32F103C8T6标准库代码进行对比分析
  • 高效玩转 PDF:实用的分割、合并操作详解
  • Windows下sql server2012安装流程
  • 十七、从0开始卷出一个新项目之瑞萨RZN2L定时器(GPT)+DMA生成PWM的运动控制
  • 实例详细演示在Pytest中如何忽略警告
  • 个人网站吗/创建app平台
  • 笔记本怎么建设网站/seo诊断分析工具
  • 提高网站加载速度iis/营销与销售的区别
  • 做律师网站/网站测速
  • 河北建设部网站/适合发表个人文章的平台
  • 查询网站备案密码是什么样的/seo排名工具哪个好