前几天在做图像曝光度(Exposure)这个小功能时,找了半天资料都没找到,后来在stackoverflow上翻到了计算方法,方法很简单,实际测试时,发现和photoshop效果还挺接近的。下面是基于opencv的相关代码示例,strength范围可以设置为-2.0到2.0:
// strength范围[-2.0, 2.0] int row = inputImg.rows; int step = inputImg.step; uchar* pInputImg = inputImg.data; uchar* pOutputImg = outputImg.data; for (int i = 0; i < row * step; i++) { pOutputImg[i] = (uchar)min_uchar(255, max_uchar(0, pInputImg[i] * pow(2, strength))); }
下面是效果图,左侧为原图,中间为photoshop调节曝光度结果图,右图为上述计算方法结果图:
时间: 2024-11-29 05:49:34