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

运行结果

相关推荐
Rubin智造社7 小时前
安全先行·自主编程|Claude Code Opus 4.7深度解读:AI开发进入合规量产时代
人工智能·anthropic·claude opus 4.7·mythos preview·xhigh努力等级·/ultrareview命令·自主开发ai
xinlianyq7 小时前
全球 AI 芯片格局生变:英伟达主导训练,国产算力崛起推理
人工智能
ShineWinsu7 小时前
AI训练硬件指南:GPU算力梯队与任务匹配框架
人工智能
范桂飓7 小时前
精选 Skills 清单
人工智能
码农的日常搅屎棍7 小时前
AIAgent开发新选择:OpenHarness极简入门指南
人工智能
AC赳赳老秦7 小时前
OpenClaw生成博客封面图+标题,适配CSDN视觉搜索,提升点击量
运维·人工智能·python·自动化·php·deepseek·openclaw
萝卜小白8 小时前
算法实习Day04-MinerU2.5-pro
人工智能·算法·机器学习
geneculture8 小时前
从人际间性到人机间性:进入人机互助新时代——兼论融智学视域下人类认知第二次大飞跃的理论奠基与实践场域
人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·人际间性·人机间性·人际间文性
东方品牌观察8 小时前
观澜社张庆解析AI:便利与挑战并存
人工智能
w_t_y_y8 小时前
Agent 开发框架(一)有哪些框架&&A2A协议
人工智能