RGB565 怎么转 RGB888

时间:2024-01-03 18:10:41 买帖  | 投诉/举报

篇首语:本文由小编为大家整理,主要介绍了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:COL12         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     end16 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的主要内容,如果未能解决你的问题,请参考以下文章