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;
}

运行结果

相关推荐
weixin_4280053011 小时前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第2天Prompt工程基础
人工智能·学习·c#·prompt
观测云11 小时前
AI Coding 时代,可观测性为什么会从“运维工具”变成核心基础设施
人工智能·ai coding
Promise微笑11 小时前
2026电缆故障定位仪:缆故障定位仪精准选型与高效避坑指南
运维·人工智能·重构
一切皆是因缘际会11 小时前
本地大模型轻量化部署
大数据·人工智能·机器学习·架构
踏着七彩祥云的小丑11 小时前
AI——Dify常见报错与排查
人工智能·ai
翼龙云_cloud11 小时前
腾讯云代理商:腾讯云如何部署DeepSeek版 Claude Code?
人工智能·云计算·腾讯云·ai智能体·deepseek-tui
wujian831111 小时前
豆包导出pdf方法
人工智能·ai·pdf·豆包·deepseek·ai导出鸭
cd_9492172111 小时前
PolyWin 多融易|预测赛道的崛起:当人工智能体开始理解未来
人工智能
Resistance丶未来11 小时前
【手把手详细教程】 Trae AI和Vscode~使用第三方中转API配置Claude ,GPT,Gemini等大模型教程
人工智能·gpt
霍小毛11 小时前
「智影孪生·慧护病房」:AI+数字孪生重构未来医疗新范式
人工智能