常见的颜色模型
RGB颜色模型
三通道,R:红色(0~255)G:绿色(0~255)B:蓝色(0~255)
RGBA颜色模型
四通道,在RGB模型的基础上多了一个A透明度(0~255)
YUV颜色模型
主要用于视频和图片的传输,黑白电视采用就是这种模型,彩色电视则通过YUV转RGB显示
Y:像素的亮点
U:红色分量与亮度的差值
V:蓝色分量与亮度的差值
HSV颜色模型
H:色度,S:饱和度,V:亮度
范围:0-100%
更符合人类感知颜色的方式:颜色、深浅与亮暗
Lab颜色模型
与设备无关和基于生理特征的颜色模型
L:亮度;
a、b表示两个颜色通道(范围:-128~127)
a:从大到小:绿色变红色
b:从小到大:蓝色变黄色
GRAY 颜色模型
是一种灰色图片模型,范围0~255
颜色模型间转换
通过cvtColor函数实现,例如:
// 原始Mat
Mat sourceMat = new Mat();
// 目标Mat
Mat transMat = new Mat();
//rbg 转 bgr (opencv 使用的是bgr)
cvtColor(sourceMat,transMat,COLOR_RGBA2BGR);
其它转换类型:
// 所属模块 opencv_imgproc
public static final int COLOR_BGR2BGRA = 0;
public static final int COLOR_RGB2RGBA = 0;
public static final int COLOR_BGRA2BGR = 1;
public static final int COLOR_RGBA2RGB = 1;
public static final int COLOR_BGR2RGBA = 2;
public static final int COLOR_RGB2BGRA = 2;
public static final int COLOR_RGBA2BGR = 3;
public static final int COLOR_BGRA2RGB = 3;
public static final int COLOR_BGR2RGB = 4;
public static final int COLOR_RGB2BGR = 4;
public static final int COLOR_BGRA2RGBA = 5;
public static final int COLOR_RGBA2BGRA = 5;
public static final int COLOR_BGR2GRAY = 6;
public static final int COLOR_RGB2GRAY = 7;
public static final int COLOR_GRAY2BGR = 8;
public static final int COLOR_GRAY2RGB = 8;
public static final int COLOR_GRAY2BGRA = 9;
public static final int COLOR_GRAY2RGBA = 9;
public static final int COLOR_BGRA2GRAY = 10;
public static final int COLOR_RGBA2GRAY = 11;
public static final int COLOR_BGR2BGR565 = 12;
public st