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

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

算法描述

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

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

函数原型

cpp 复制代码
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之间。

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

代码示例

cpp 复制代码
#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;
}

运行结果

相关推荐
斐夷所非2 小时前
人工智能 AI. 机器学习 ML. 深度学习 DL. 神经网络 NN 的区别与联系
人工智能
Funny_AI_LAB3 小时前
OpenAI DevDay 2025:ChatGPT 进化为平台,开启 AI 应用新纪元
人工智能·ai·语言模型·chatgpt
深瞳智检4 小时前
YOLO算法原理详解系列 第002期-YOLOv2 算法原理详解
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
深眸财经4 小时前
机器人再冲港交所,优艾智合能否破行业困局?
人工智能·机器人
小宁爱Python4 小时前
从零搭建 RAG 智能问答系统1:基于 LlamaIndex 与 Chainlit实现最简单的聊天助手
人工智能·后端·python
新知图书5 小时前
Encoder-Decoder架构的模型简介
人工智能·架构·ai agent·智能体·大模型应用开发·大模型应用
大模型真好玩5 小时前
低代码Agent开发框架使用指南(一)—主流开发框架对比介绍
人工智能·低代码·agent
tzc_fly6 小时前
AI作为操作系统已经不能阻挡了,尽管它还没来
人工智能·chatgpt
PKNLP6 小时前
深度学习之神经网络1(Neural Network)
人工智能·深度学习·神经网络
文火冰糖的硅基工坊7 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机