RGB565 to gray
摄像头是raw10的输出,如果是yuy2则是偏蓝色,rgb565则是偏紫色。
上层PC端软件需要自己做处理。
测试如下:
test pattern:
solid color.
{ 0x4322,0x03},//B Gb R Gr all 0x03FF
{ 0x4323,0xFF},
原始数据0x03FF,amcap软件显示的像素全为:
RGB565 : RGB 0,124,248(0,01111100,11111000)
raw原始数据:
00000011 11111111
rgb565:r:00000, g:011111 ,b: 11111.
需要转化为RGB888:
0,124,248(0,01111100,11111000)
转换规则:
R7 R6 R5 R4 R3 G7 G6 G5 G4 G3 G2 B7 B6 B5 B4 B3 (r和b都经过了右移运算,舍弃了低三位的信息,g也是舍弃了低二位的信息,所以显示出的颜色能大致符合,稍有色差(实际上是对应了调色板的索引值))
00000(000) 011111(00) 11111(000)
。。。。。
pOut = ((*pIn) >> 3) | ((pIn+1)>>2); //B5+G3 (opencv是BGR的,也就是BG倒过来)
pOut =(uchar)((*pIn) >> 5) | (uchar) ((pIn + 1)<<1);//G << 1 | B >> 5 10bitraw,去掉低2bit
总结:
不能直接告诉amcap等软件 数据格式是raw data。
下位机传输的是raw数据,但告知pc端必须为 rgb565 或 yuy2等标准格式,pc端再把rgb565 或 yuy2等格式转换为raw(gray)。
将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。
RGB888-RGB565;
static void RGB2Gray(void *pInbuf, void *pOutbuf, unsigned int len)//RGB565
{
unsigned int i;
unsigned char pIn = (unsigned char)pInbuf;
unsigned char pOut = (unsigned char)pOutbuf;
for (i = 0; i < len/2; i++)//438851 G>>2 | R>>5
{
// pOut = ((*pIn) >> 3) | ((pIn+1)>>2);//B5 + G3
pOut =(uchar)((*pIn) >> 5) | (uchar) ((pIn + 1)<<1);//G << 1 | B >> 5
*(pOut+1) = *pOut;
*(pOut+2) = *pOut;
pOut += 3;
pIn += 3;
}
}
RGB565 to gray相关推荐
- OpenCV--矩阵操作总结
有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分 少部 ...
- ffplay 播放yuv视频
播放uvc usb摄像头 ,ffplay -f rawvideo -video_size 1280x720 -pixel_format yuyv422 test.yuv pixel_format支持 ...
- 基于FPGA:肤色识别算法实现(OV5640摄像头+Cyclone芯片)含工程源码
目录 前言: 一.进入正文: 二.Verilog代码实现: 前言: 肤色识别算法的Verilog代码基于FPGA 的彩色图片转灰度实现的.本文参考硅农图像处理教学文章.一个良心公众号,有很多开源技术含 ...
- FPGA 实现 RGB 图像转 Gray
项目需求 这个实验主要是实现了图像灰度的转换,将原来的RGB565通过串口发送到FPGA开发板,然后通过算法转换实现数据的处理. 方案思路 首先通过串口发送图片数据到FPGA开发板,写入RAM中,最后 ...
- 灰度图Gray Scale Image 或是 Gray Scale Image
1.灰度图Gray Scale Image 定义 Gray Scale Image 或是 Gray Scale Image,56阶.又称灰阶图.把白色与黑色之间按对数关系分为若干等级,称为灰度.灰度分 ...
- 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码
/**24位深的bmp图片转换为16位深RGB565格式的bmp图片**/ #include <iostream> #include <stdio.h> #include &l ...
- RGB888与RGB565颜色
颜色名称 RGB888原色 RGB565还原色 英 RGB888[Hex] RGB888_R[Hex] RGB888_G[Hex] RGB888_B[Hex] RGB565[Hex] RGB565_R ...
- CUDA Samples: Image Process: BGR to Gray
在图像处理中,颜色变换BGR到Gray,常见的一般有两种计算方式,一种是基于浮点数计算,一种是基于性能优化的通过移位的整数计算. 浮点数计算公式为: gray = 0.1140 * B + 0.58 ...
- R语言ggplot2可视化分面图(facet_grid):去除分面图灰色矩形框以及框中的标签、Getting rid of facet_grid labels on those gray boxes
R语言ggplot2可视化分面图(facet_grid):去除分面图灰色矩形框以及框中的标签.Getting rid of facet_grid labels on those gray boxes ...
最新文章
- ASP.NET中实现打印
- Random类(Java中的随机类)
- MariaDB 修改存储路径后启动失败问题解决
- 多线程相互排斥--mutex(二)
- 双链表的基本操作---插入,删除,交,并,相邻元素的交换,不相邻元素的交换...
- css 容器内 div 底部,CSS:在div容器的底部放置一個div容器
- Day1 - Python基础1
- 条款5:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)...
- nprogress页面加载进度条
- L1-042 日期格式化
- 华为IE和思科IE哪个好?
- 激光共聚焦显微镜原理
- 外部方式启动AndroidStudio模拟器
- 在html5水平边距属性hspace,HTML5 常用语法一览(列举不支持的属性)
- 应对不断变化的世界秩序:自治资本主义
- cαr怎么发音_最全英语口语发音规则与技巧
- 使用MMDetection训练自己的数据集
- CONDITION EVALUATION DELTA
- Redis 作 mysql 的缓存服务器及redis的高可用
- Shell---函数