【图像处理】关于图像的多种格式

版权声明:转载请注明出处 http://blog.csdn.net/TwT520Ly https://blog.csdn.net/TwT520Ly/article/details/81981712

RGB与BGR

在使用OpenCV获取图像的时候,读取进来的数据是BGR格式的,而不是RGB格式。
测试方法:

//test the color channel
cv::Mat mat; //Init!
std::vector<cv::Mat > Channel(3);
cv::split(mat, Channel);

 // show the image
cv::Mat blank_channel, merge_img;
blank_channel = cv::Mat::zeros(cv::Size(width, height), CV_8UC1);

std::vector<cv::Mat > channel_2;
channel_2.push_back(blank_channel);
channel_2.push_back(blank_channel);
channel_2.push_back(Channel[2]);
cv::merge(channel_2, merge_img);
cv::imshow("2", merge_img);

std::vector<cv::Mat > channel_1;
channel_1.push_back(blank_channel);
channel_1.push_back(Channel[1]);
channel_1.push_back(blank_channel);
cv::merge(channel_1, merge_img);
cv::imshow("1", merge_img);

std::vector<cv::Mat > channel_0;
channel_0.push_back(Channel[0]);
channel_0.push_back(blank_channel);
channel_0.push_back(blank_channel);
cv::merge(channel_0, merge_img);
cv::imshow("0", merge_img);

对于RGB而言,有两种方式可以进行表示,一种是RGB24,另一种是RGB32。RGB24是三通道的图像,分别是R、G、B,RGB32是四通道的图像,分别是R、G、B、Alpha,第四个通道表示图像的透明度,在图像合成的时候有很大的意义。

YUV

YUV的存储方式有两种:
Packed:YUVYUVYUVYUV
Planar:YYYUUUVVV

对于YUV的Planar模式,有多种采样方式,如4:4:4、4:2:2、4:2:0等,以YUV420格式为例,每四个Y对应一个U和一个V。

YUV420分类格式如下:

YUV420
--YUV420p
----YU12(YYYUUUVVV...)/I420
----YV12(YYYVVVUUU...)
--YUV420sp
----NV12(YYYUVUV...)/IOS
----NV21(YYYVUVU...)/Android

BGR转换为BGRA

https://www.cnblogs.com/hatsusakana/p/7764817.html

猜你喜欢

转载自blog.csdn.net/TwT520Ly/article/details/81981712