RGB565 怎么转 RGB888
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RGB565 怎么转 RGB888相关的知识,希望对你有一定的参考价值。
RGB565的意思是在16位整型数中,低5位对应蓝色的高5位,高5位对应红的高5位,中间6位对应绿的高6位要变成RGB888,那么用连续的三个字节分别存放红绿蓝三个8位数
可以这么转换:
unsigned short int uRGB565=0x1234; //随便取的一个颜色值
unsigned char RGB888[3];
RGB888[0]=(uRGB565>>8)&0x0f8; //转换最高5位成8位红色的高5位
RGB888[1]=(uRGB565>>3)&0x0fc; //转换中间6位成8位绿色的高6位
RGB888[2]=(uRGB565<<3)&0x0f8; //转换低5位成8位蓝色的高5位
在转换时,8位颜色值的低位不足部分是取成了0值,也可以取成全1值,这样最亮的颜色不会变,方法是:RGB888[0]|=7; RGB888[1]|=3; RGB888[2]|=7; 参考技术A 会不会是添加了“图层蒙版”、。。 →你在“图层”面板上看
还有会不会“模式”由“正常”改成“明度”了,
(一般不会这样的,你再新建张纸试试)
不明白可以再问我
灰度转换:RGB转YCbCr转Gray
YCbCr
一、YCbCr介绍
啊
二、MATLAB实现
简单
1 clc; 2 clear all; 3 RGB = imread(‘flower.bmp‘); %读取图像 4 5 R = RGB(:,:,1); %R分量 6 G = RGB(:,:,2); %G分量 7 B = RGB(:,:,3); %B分量 8 9 [ROW,COL,N] = size(RGB); %获得图像尺寸[高度,长度,维度] 10 for i = 1:ROW 11 for j = 1:COL 12 Y(i,j) = 0.299*R(i,j) + 0.587*G(i,j) + 0.114*B(i,j); 13 Cb(i,j) = -0.172*R(i,j) - 0.339*G(i,j) + 0.511*B(i,j) + 128; 14 Cr(i,j) = 0.511*R(i,j) - 0.428*G(i,j) - 0.083*B(i,j) + 128; 15 end 16 end 17 18 subplot(2,2,1);imshow(R);title(‘R分量灰度图‘); 19 subplot(2,2,2);imshow(G);title(‘G分量灰度图‘); 20 subplot(2,2,3);imshow(B);title(‘B分量灰度图‘); 21 subplot(2,2,4);imshow(Y);title(‘Y分量灰度图‘);
效果如下:
三、FPGA实现
1、公式改写
啊
2、流水线思想
啊
3、Y分量赋值
啊
四、上板验证
如图:
五、后记
后续用Y分量进行图像处理即可
以上是关于RGB565 怎么转 RGB888的主要内容,如果未能解决你的问题,请参考以下文章