RGB16转换RGB24
来源:互联网 发布:p2p网络借贷系统 编辑:程序博客网 时间:2024/05/20 16:32
在视频采集和视频的编解码中,常出现RGB16的数据格式,而我们最常用是图像处理数据格式为RGB24。他们之间需要转换,整理如下:
RGB16数据像数数据格式有二种:
(1)RGB565 每个像素用16位表示,RGB分量分别使用5位、6位、5位
(2)RGB555 每个像素用16位表示,RGB分量都使用5位(剩下的1位不用)
RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:
高字节 低字节
R R R R R G G G G G G B B B B B
- void Tran565to24(unsigned char* src, int w, int h, RtImage* dst)
- {
- int x = 0, y = 0;
- int pos = 0;
- unsigned char val0 = val1 = 0;
- for (y = 0; y < h; y++)
- {
- for (x = 0; x < w; x++)
- {
- pos = (y * w + x) * 2;
- val0 = *(src + pos);
- val1 = *(src + pos + 1);
- pos = dst->widthStep * y + x * dst->nChannels;
- *(dst->imageData + pos + 0) = val0 << 3;
- *(dst->imageData + pos + 1) = (val1 << 5) | ((val0 >> 3) & 0x1C);
- *(dst->imageData + pos + 2) = val1 & 0xF8;
- }
- }
- }
RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
高字节 低字节
X R R R R G G G G G B B B B B (X表示不用,可以忽略)
- void Tran555to24(unsigned char* src, int w, int h, RtImage* dst)
- {
- int x = 0, y = 0;
- int pos = 0;
- unsigned char val0 = val1 = 0;
- for (y = 0; y < h; y++)
- {
- for (x = 0; x < w; x++)
- {
- pos = (y * w + x) * 2;
- val0 = *(src + pos);
- val1 = *(src + pos + 1);
- pos = dst->widthStep * y + x * dst->nChannels;
- *(dst->imageData + pos + 0) = val0 << 3;
- *(dst->imageData + pos + 1) = (val1 << 6) | ((val0 >> 2) & 0x38);
- *(dst->imageData + pos + 2) = (val1<<1) & 0xF8;
- }
- }
- }
- RGB16转换RGB24
- RGB16转换RGB24
- RGB16转换RGB24
- C小程序【RGB24 to RGB16颜色转换器】
- YUV420、YUV422、RGB24转换
- YUV420、YUV422、RGB24转换
- YUV420、YUV422、RGB24转换
- RGB565到RGB24转换
- YUV420、YUV422、RGB24转换
- RGB565到RGB24转换
- YUV420、YUV422、RGB24转换
- YUV420、YUV422、RGB24转换
- YUV420、YUV422、RGB24转换
- YUV420转换成RGB24
- RGB16进制与10进制的转换
- yuv420和rgb24互相转换
- YUV422 YUV420 RGB24相互转换
- 颜色转换rgb24 to yuv420
- LINUX内核内存屏障
- linux异步IO浅析
- 颜色空间转换(一)
- 颜色空间转换(二)
- power of 2 or not
- RGB16转换RGB24
- 在python中使用OpenCV【转载的】【不好用或过时了】
- Hough变换的线段检测
- 各种变换的原理----DX版本
- 括号匹配——栈的基础应用1
- myeclipse优化方案 myeclipse 10 优化
- 我的MBTI职业性格测试
- GIT分支管理是一门艺术
- Git分支管理策略