图片色彩校正

这次本科设计是一位好友的女朋友拜托的,涉及到图像色彩的校正。图像色彩变换本人觉得是所有图像处理中最简单的了,毫不犹豫就答应下来。

要求是这样的,相机将静物以及标准色板拍照成像,根据标准色板的颜色值校正相应的参数,使得图像的色彩更趋近于自然。很多厂商都有相应的相片校正程序,在此仅仅采用了最简单的最小二乘法进行校正。

值得注意的是,校正是在Lab色彩空间里面进行的。Lab色彩空间定义如下:

在Lab颜色空间中,一种颜色由L(亮度)、a颜色、b颜色三种参数表征.L表示照度(Luminosity),相当于亮度,L取值为0--100(纯黑--纯白)。a表示从红色至绿色的范围,a取值为+127--128(洋红--绿)。b表示从黄色至蓝色的范围,b取值为+127--128(黄--蓝).、正为暖色,负为冷色。

相对于前面提到的两种颜色模式, Lab模式有它的优势:

  1. Lab模式既不依赖光线,也不依赖于颜料。
  2. 处理速度与RGB模式同样快,比CMYK模式快很多。
  3. Lab模式在转换成CMYK模式时色彩没有丢失或被替换。因此,最佳避免色彩损失的方法是:应用Lab模式编辑图象,再转换为CMYK模式打印输出。
  4. Lab模式还弥补了前面两种色彩模式的不足。RGB在蓝色与绿色之间的过渡色太多,绿色与红色之间的过渡色又太少,CMYK模式在编辑处理图片的过程中损失的色彩则更多,而Lab模式在这些方面都有所补偿。 在表达色彩范围上,处于第一位的是Lab模式,第二位的是RGB模式,第三位是CMYK模式。

整个思路很简单

  1. 读取照片
  2. 找到标准色板区域
  3. 提取各个色块并算均值
  4. 转换到Lab色彩空间
  5. 最小二乘法与标准色块进行拟合,得出变换矩阵
  6. 将源图像转换到Lab空间并应用变换矩阵
  7. 将变换后的图像转换回RGB并显示。

难点就是色彩空间的转换,调试了一会才搞定。程序已经上传至我的Github中,在此直接贴上结果吧。左图为原图,右图为校正后的结果。第二张图片校正结果不是很理想,估计仅仅采用最小二乘法得到线性校正法还有不足,以后再考虑下怎么修改吧。

Imgur

Imgur

附:资源链接

石聪 /
Published under (CC) BY-NC-SA in categories 图像处理  tagged with 图片校正