常见的颜色模型
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 static final int COLOR_RGB2BGR565 = 13;
public static final int COLOR_BGR5652BGR = 14;
public static final int COLOR_BGR5652RGB = 15;
public static final int COLOR_BGRA2BGR565 = 16;
public static final int COLOR_RGBA2BGR565 = 17;
public static final int COLOR_BGR5652BGRA = 18;
public static final int COLOR_BGR5652RGBA = 19;
public static final int COLOR_GRAY2BGR565 = 20;
public static final int COLOR_BGR5652GRAY = 21;
public static final int COLOR_BGR2BGR555 = 22;
public static final int COLOR_RGB2BGR555 = 23;
public static final int COLOR_BGR5552BGR = 24;
public static final int COLOR_BGR5552RGB = 25;
public static final int COLOR_BGRA2BGR555 = 26;
public static final int COLOR_RGBA2BGR555 = 27;
public static final int COLOR_BGR5552BGRA = 28;
public static final int COLOR_BGR5552RGBA = 29;
public static final int COLOR_GRAY2BGR555 = 30;
public static final int COLOR_BGR5552GRAY = 31;
public static final int COLOR_BGR2XYZ = 32;
public static final int COLOR_RGB2XYZ = 33;
public static final int COLOR_XYZ2BGR = 34;
public static final int COLOR_XYZ2RGB = 35;
public static final int COLOR_BGR2YCrCb = 36;
public static final int COLOR_RGB2YCrCb = 37;
public static final int COLOR_YCrCb2BGR = 38;
public static final int COLOR_YCrCb2RGB = 39;
public static final int COLOR_BGR2HSV = 40;
public static final int COLOR_RGB2HSV = 41;
public static final int COLOR_BGR2Lab = 44;
public static final int COLOR_RGB2Lab = 45;
public static final int COLOR_BGR2Luv = 50;
public static final int COLOR_RGB2Luv = 51;
public static final int COLOR_BGR2HLS = 52;
public static final int COLOR_RGB2HLS = 53;
public static final int COLOR_HSV2BGR = 54;
public static final int COLOR_HSV2RGB = 55;
public static final int COLOR_Lab2BGR = 56;
public static final int COLOR_Lab2RGB = 57;
public static final int COLOR_Luv2BGR = 58;
public static final int COLOR_Luv2RGB = 59;
public static final int COLOR_HLS2BGR = 60;
public static final int COLOR_HLS2RGB = 61;
public static final int COLOR_BGR2HSV_FULL = 66;
public static final int COLOR_RGB2HSV_FULL = 67;
public static final int COLOR_BGR2HLS_FULL = 68;
public static final int COLOR_RGB2HLS_FULL = 69;
public static final int COLOR_HSV2BGR_FULL = 70;
public static final int COLOR_HSV2RGB_FULL = 71;
public static final int COLOR_HLS2BGR_FULL = 72;
public static final int COLOR_HLS2RGB_FULL = 73;
public static final int COLOR_LBGR2Lab = 74;
public static final int COLOR_LRGB2Lab = 75;
public static final int COLOR_LBGR2Luv = 76;
public static final int COLOR_LRGB2Luv = 77;
public static final int COLOR_Lab2LBGR = 78;
public static final int COLOR_Lab2LRGB = 79;
public static final int COLOR_Luv2LBGR = 80;
public static final int COLOR_Luv2LRGB = 81;
public static final int COLOR_BGR2YUV = 82;
public static final int COLOR_RGB2YUV = 83;
public static final int COLOR_YUV2BGR = 84;
public static final int COLOR_YUV2RGB = 85;
public static final int COLOR_YUV2RGB_NV12 = 90;
public static final int COLOR_YUV2BGR_NV12 = 91;
public static final int COLOR_YUV2RGB_NV21 = 92;
public static final int COLOR_YUV2BGR_NV21 = 93;
public static final int COLOR_YUV420sp2RGB = 92;
public static final int COLOR_YUV420sp2BGR = 93;
public static final int COLOR_YUV2RGBA_NV12 = 94;
public static final int COLOR_YUV2BGRA_NV12 = 95;
public static final int COLOR_YUV2RGBA_NV21 = 96;
public static final int COLOR_YUV2BGRA_NV21 = 97;
public static final int COLOR_YUV420sp2RGBA = 96;
public static final int COLOR_YUV420sp2BGRA = 97;
public static final int COLOR_YUV2RGB_YV12 = 98;
public static final int COLOR_YUV2BGR_YV12 = 99;
public static final int COLOR_YUV2RGB_IYUV = 100;
public static final int COLOR_YUV2BGR_IYUV = 101;
public static final int COLOR_YUV2RGB_I420 = 100;
public static final int COLOR_YUV2BGR_I420 = 101;
public static final int COLOR_YUV420p2RGB = 98;
public static final int COLOR_YUV420p2BGR = 99;
public static final int COLOR_YUV2RGBA_YV12 = 102;
public static final int COLOR_YUV2BGRA_YV12 = 103;
public static final int COLOR_YUV2RGBA_IYUV = 104;
public static final int COLOR_YUV2BGRA_IYUV = 105;
public static final int COLOR_YUV2RGBA_I420 = 104;
public static final int COLOR_YUV2BGRA_I420 = 105;
public static final int COLOR_YUV420p2RGBA = 102;
public static final int COLOR_YUV420p2BGRA = 103;
public static final int COLOR_YUV2GRAY_420 = 106;
public static final int COLOR_YUV2GRAY_NV21 = 106;
public static final int COLOR_YUV2GRAY_NV12 = 106;
public static final int COLOR_YUV2GRAY_YV12 = 106;
public static final int COLOR_YUV2GRAY_IYUV = 106;
public static final int COLOR_YUV2GRAY_I420 = 106;
public static final int COLOR_YUV420sp2GRAY = 106;
public static final int COLOR_YUV420p2GRAY = 106;
public static final int COLOR_YUV2RGB_UYVY = 107;
public static final int COLOR_YUV2BGR_UYVY = 108;
public static final int COLOR_YUV2RGB_Y422 = 107;
public static final int COLOR_YUV2BGR_Y422 = 108;
public static final int COLOR_YUV2RGB_UYNV = 107;
public static final int COLOR_YUV2BGR_UYNV = 108;
public static final int COLOR_YUV2RGBA_UYVY = 111;
public static final int COLOR_YUV2BGRA_UYVY = 112;
public static final int COLOR_YUV2RGBA_Y422 = 111;
public static final int COLOR_YUV2BGRA_Y422 = 112;
public static final int COLOR_YUV2RGBA_UYNV = 111;
public static final int COLOR_YUV2BGRA_UYNV = 112;
public static final int COLOR_YUV2RGB_YUY2 = 115;
public static final int COLOR_YUV2BGR_YUY2 = 116;
public static final int COLOR_YUV2RGB_YVYU = 117;
public static final int COLOR_YUV2BGR_YVYU = 118;
public static final int COLOR_YUV2RGB_YUYV = 115;
public static final int COLOR_YUV2BGR_YUYV = 116;
public static final int COLOR_YUV2RGB_YUNV = 115;
public static final int COLOR_YUV2BGR_YUNV = 116;
public static final int COLOR_YUV2RGBA_YUY2 = 119;
public static final int COLOR_YUV2BGRA_YUY2 = 120;
public static final int COLOR_YUV2RGBA_YVYU = 121;
public static final int COLOR_YUV2BGRA_YVYU = 122;
public static final int COLOR_YUV2RGBA_YUYV = 119;
public static final int COLOR_YUV2BGRA_YUYV = 120;
public static final int COLOR_YUV2RGBA_YUNV = 119;
public static final int COLOR_YUV2BGRA_YUNV = 120;
public static final int COLOR_YUV2GRAY_UYVY = 123;
public static final int COLOR_YUV2GRAY_YUY2 = 124;
public static final int COLOR_YUV2GRAY_Y422 = 123;
public static final int COLOR_YUV2GRAY_UYNV = 123;
public static final int COLOR_YUV2GRAY_YVYU = 124;
public static final int COLOR_YUV2GRAY_YUYV = 124;
public static final int COLOR_YUV2GRAY_YUNV = 124;
public static final int COLOR_RGBA2mRGBA = 125;
public static final int COLOR_mRGBA2RGBA = 126;
public static final int COLOR_RGB2YUV_I420 = 127;
public static final int COLOR_BGR2YUV_I420 = 128;
public static final int COLOR_RGB2YUV_IYUV = 127;
public static final int COLOR_BGR2YUV_IYUV = 128;
public static final int COLOR_RGBA2YUV_I420 = 129;
public static final int COLOR_BGRA2YUV_I420 = 130;
public static final int COLOR_RGBA2YUV_IYUV = 129;
public static final int COLOR_BGRA2YUV_IYUV = 130;
public static final int COLOR_RGB2YUV_YV12 = 131;
public static final int COLOR_BGR2YUV_YV12 = 132;
public static final int COLOR_RGBA2YUV_YV12 = 133;
public static final int COLOR_BGRA2YUV_YV12 = 134;
public static final int COLOR_BayerBG2BGR = 46;
public static final int COLOR_BayerGB2BGR = 47;
public static final int COLOR_BayerRG2BGR = 48;
public static final int COLOR_BayerGR2BGR = 49;
public static final int COLOR_BayerBG2RGB = 48;
public static final int COLOR_BayerGB2RGB = 49;
public static final int COLOR_BayerRG2RGB = 46;
public static final int COLOR_BayerGR2RGB = 47;
public static final int COLOR_BayerBG2GRAY = 86;
public static final int COLOR_BayerGB2GRAY = 87;
public static final int COLOR_BayerRG2GRAY = 88;
public static final int COLOR_BayerGR2GRAY = 89;
public static final int COLOR_BayerBG2BGR_VNG = 62;
public static final int COLOR_BayerGB2BGR_VNG = 63;
public static final int COLOR_BayerRG2BGR_VNG = 64;
public static final int COLOR_BayerGR2BGR_VNG = 65;
public static final int COLOR_BayerBG2RGB_VNG = 64;
public static final int COLOR_BayerGB2RGB_VNG = 65;
public static final int COLOR_BayerRG2RGB_VNG = 62;
public static final int COLOR_BayerGR2RGB_VNG = 63;
public static final int COLOR_BayerBG2BGR_EA = 135;
public static final int COLOR_BayerGB2BGR_EA = 136;
public static final int COLOR_BayerRG2BGR_EA = 137;
public static final int COLOR_BayerGR2BGR_EA = 138;
public static final int COLOR_BayerBG2RGB_EA = 137;
public static final int COLOR_BayerGB2RGB_EA = 138;
public static final int COLOR_BayerRG2RGB_EA = 135;
public static final int COLOR_BayerGR2RGB_EA = 136;
public static final int COLOR_BayerBG2BGRA = 139;
public static final int COLOR_BayerGB2BGRA = 140;
public static final int COLOR_BayerRG2BGRA = 141;
public static final int COLOR_BayerGR2BGRA = 142;
public static final int COLOR_BayerBG2RGBA = 141;
public static final int COLOR_BayerGB2RGBA = 142;
public static final int COLOR_BayerRG2RGBA = 139;
public static final int COLOR_BayerGR2RGBA = 140;
public static final int COLOR_COLORCVT_MAX = 143;