前言
1.这是一种在低光照下对色彩恢复效果很好的算法,具体可以看《Adaptive Logarithmic Mapping For Displaying High Contrast Scenes》。
2.代码不多,直接调用封装好的函数就可以了。
代码
void adaptiveLogarithmicMapping(const Mat& img, Mat &dst)
{
Mat ldrDrago;
img.convertTo(ldrDrago, CV_32FC3, 1.0f/255);
cvtColor(ldrDrago, ldrDrago, cv::COLOR_BGR2XYZ);
Ptr<TonemapDrago> tonemapDrago = createTonemapDrago(1.f, 1.f, 0.85f);
tonemapDrago->process(ldrDrago, dst);
cvtColor(dst, dst, cv::COLOR_XYZ2BGR);
dst.convertTo(dst, CV_8UC3, 255);
}
运行结果:
结语:
我这里使用的库OpenCV版本是3.30,关于opencv学习,有兴趣的看我之前发的博客,可以加之前博客后面给的兴趣群。