使用C++、opencv基于不同的颜色空间调节图像亮度
该博客简单介绍了RGB、YUV、HSI等颜色空间的相关知识,并附RGB转到另两个颜色空间的转换公式: https://www.cnblogs.com/justkong/p/6570914.html
https://blog.csdn.net/sinat_26917383/article/details/70860910及https://wenku.baidu.com/view/6273f20a581b6bd97f19ea99.html也都介绍了不同的颜色空间的相关知识。
该博客介绍了opencv中颜色转换的函数及RGB转HSV空间的实际应用:https://blog.csdn.net/dieju8330/article/details/82465616
注:opencv中HSI、HSV、HSL中的H分量的范围是0-180,剩下两个(SI、SL、SV)都是0-255;
V分量即是RGB中最大的那个分量,与图像亮度无关,所以选择HSL空间研究;
opencv中颜色空间转换函数在2.x与3.x版本中都是cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0),只是code的宏定义的写法有点区别(3.x中将2.x中的CV前缀变为COLOR前缀)。
该博客介绍了HSL与HSV颜色空间的区别:https://blog.csdn.net/binglan520/article/details/56288135
注:在公式上HSL、HSV、HSI的区别在于:L=(MAX(R,G,B)+MIN(R,G,B))/2;V=MAX(R,G,B));I=(R+G+B)/3。
该博客介绍了不同光照条件(即亮度条件)下几个颜色空间的色彩分量的区别及应用颜色阈值进行分割的相关知识:https://blog.csdn.net/wc781708249/article/details/78517463
本代码在不同颜色空间下(HSI、Lab、YCrCb),对跟亮度有关的颜色分量(I、L、Y)进行直方图均衡化,达到平衡亮度的效果,其次以YCrCb空间为例,展示利用滑动条调节图像整体Y值。
相关重要API: