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 亮度增强 二的主要内容,如果未能解决你的问题,请参考以下文章