opencv 亮度增强 二

Posted qianbo_insist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv 亮度增强 二相关的知识,希望对你有一定的参考价值。

一、线性变换和查找

亮度和非线性变化一

这里增加了查找

1 、公式y = ax +b

a 为alpha ,b为beta

2、查找

可以自己写,也可以使用函数LUT

二、非线性 *,结果很好

使用非线性公式 如y = pow((value/255),0.4) *255

三 、code

上一章已经有了,可以根据上一章的来做

void function(float alpha,float beta) {
    Mat image = imread("test1.jpg");
    if (image.empty()) {
        std::cout << "fail,check it" << std::endl;
        return;
    }
    imshow("image", image);
    for(int i=0;i<image.rows;i++)
        for (int j = 0; j < image.cols; j++) {
        // 从bgr 上 进行线性和查表
            for (int k = 0; k < 3; k++) {
                int tmp= (uchar)image.at<Vec3b>(i, j)[k] * alpha + beta;
                if (tmp > 255) //这里也可以使用表
                    image.at<Vec3b>(i, j)[k] = 2 * 255 - tmp;
                else if(tmp ....) //伪代码
                {
                   //赋值操作
                }
                else
                    image.at<Vec3b>(i, j)[k] = tmp;
            }
        }
    imshow("亮度up", image);
    imwrite("ldzq.png", image);
    waitKey();
}

以上是关于opencv 亮度增强 二的主要内容,如果未能解决你的问题,请参考以下文章

opencv 亮度增强 二

树莓派视觉小车 -- 物体跟踪(OpenCV)

OpenCV + CPP 系列图像的加权混合 对比度与亮度

灰度图像直方图变换的一些代码

opencv图像直方图均衡化及其原理

估计图像 Opencv 的亮度