项目里用了OV2640摄像头,传感器采集了数据后是以RGB565的形式存在的,后面还要对其做数据处理才能还原原彩色图像,那么什么是RGB565,什么是RGB888呢?来看图。

这下明白了吗?就是拆开原来的16位数据,分成3个通道的8位数据,可见RGB565转RGB888不会有数据损失,而RGB888转RGB565会丢失色彩信息。我的ppt里右边核心代码是C++的,完整C++带函数的代码去这儿看

https://blog.csdn.net/macunshi/article/details/85724223

下面给出一段完整的MATLAB代码。

这里我还提供一张RGB565存储方式的二进制数据文件,用MATLAB代码把它解析成RGB888就可以看了,需要跑代码的到这儿去下载RGB565的二进制文件样例。

注意:

代码里我们是以16位一个数读数据的,如果是8位一个读数据,就需要把相邻的两个数进行交换然后在做RGB565转RGB888,因为图片二进制数据是嵌入式平台采集的,这里存在一个大小端的问题,ARM用的大端,Intel x86用的小端,存储方式正好相反。

代码如下:

clc
clear all;
close all;
%以16位形式打开RGB565二进制文件,博文里有样例文件下载链接[FileName,PathName] = uigetfile('*','All Image Files','Select the image');  fidin=fopen([PathName FileName],'rb');
while ~feof(fidin)[RGB565_16,cnt]=fread(fidin,inf,'uint16');
endfclose(fidin);%提取每一个像素的16位数据
A=zeros(1200,1600);
for i=1:1200for j=1:1600A(i,j)=RGB565_16((i-1)*1600+j);end
endimgR = bitshift(bitand(A,63488),-8); %十进制 63488 为二进制 11111000 00000000
imgG = bitshift(bitand(A,2016),-3);  %十进制 2016  为二进制 00000111 11100000
imgB = bitshift(bitand(A,31),3);     %十进制 31    为二进制 00000000 00011111
im888 = uint8(cat(3,imgR,imgG,imgB)); %组合RGB数据,然后把16位强制转化为8位
imshow(im888);

完了跑出来的照片是一张草地里由下向上拍的鱼眼照片,是这个样子的:

RGB565转RGB888原理 (MATLAB代码)相关推荐

  1. SNV标准正交变换 原理 matlab代码说明

    SNV标准正交变换 matlab代码说明 SNV 原理 SNV matlab 代码(原作者:Andrea Candolfi) SNV 原理 SNV matlab 代码(原作者:Andrea Cando ...

  2. matlab评估边缘检测性能,【模糊推理】模糊逻辑图像边缘检测,原理+matlab代码~...

    这篇博客是接着上一篇来哒,https://blog.csdn.net/luolan9611/article/details/94285158 本篇博客及上篇博客搜集的资料.实验代码.实验报告.PPT均 ...

  3. 畸变校正与极线校正(具体原理+Matlab代码)

    附:相关需要的工具函数源代码(投影函数.校正矩阵计算等)见最下面 1. 畸变校正 1.1 形成原因 图像畸变一般有两种,第一种是透镜本身的形状有问题,使得图像发生径向畸变:第二种是透镜安装时与成像平面 ...

  4. 【模糊推理】模糊逻辑图像边缘检测,原理+matlab代码~

    这篇博客是接着上一篇来哒,https://blog.csdn.net/luolan9611/article/details/94285158 本篇博客及上篇博客搜集的资料.实验代码.实验报告.PPT均 ...

  5. 牛头刨机械原理matlab代码

    报告链接:https://www.cnblogs.com/zhou1106/p/13398663.html 下载链接:https://download.csdn.net/download/RONNIE ...

  6. 【红外技术】非均匀校正之两点校正(原理标定方法MATLAB代码效果)

    创作时间:2022-05-06 非均匀校正之两点校正(原理&MATLAB代码&效果) 目录: 1.原理&标定方法 2.代码 3.效果 正文: 先看下效果 1.原理 红外焦平面的 ...

  7. KLT降维与图像压缩(附MATLAB代码)

    KLT降维与图像压缩 KLT简述 步骤原理 MATLAB代码 结果分析 KLT简述 KLT (Karhunen-Loeve Transform) 是变换编码 (Transform Coding) 的一 ...

  8. 转: RGB565、RGB888互相转换原理和代码

    转:http://www.xuebuyuan.com/935987.html 背景:在我们的计算机中图像是以RGB888格式显示图像的,24位图每个像素保存了32bit的数据,即RGB888+Alph ...

  9. PCA降维算法原理及代码实现(python和matlab)

    常见的数据降维算法有:奇异值分解(SVD).主成分分析(PCA).因子分析(FA).独立成分分析(ICA). PCA降维的基本思想:通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值.特征向量. ...

最新文章

  1. Java 变量声明和赋值
  2. python中运算的英文_[lemon]Python中的运算符,LemonPython
  3. php中学院与专业的级联,SQLite中使用CTE巧解多级分类的级联查询
  4. 你能抱我一下,好吗?
  5. 小学音乐教学和计算机的融合,【多媒体技术论文】小学音乐多媒体教学融入策略问题(共5881字)...
  6. 双线程交替修改变量 条件变量
  7. 如果你是加勒比海盗首领,会选择哪种算法来使价值最大化?
  8. dwg格式的计算机图,电脑上怎么打开dwg文件?
  9. 学习Java,你能做这些工作:
  10. 如何测试充电宝输出电压-20210127
  11. iOS开发项目实战狗粮
  12. 第九周项目三:星星图案(一)
  13. 用笔记本建立虚拟wifi
  14. Verdi调整字体大小
  15. NVR-网络视频录像机
  16. CCPC-Wannafly Comet OJ 夏季欢乐赛(2019) 飞行棋
  17. 疯狂java讲义(李刚)6.2
  18. 物联网基于wifi定位模型
  19. 开源OA协同办公平台搭建教程丨服务器端命令:数据导入导出及配置
  20. curl采集 根据关键词 获取雅虎竞价排名

热门文章

  1. 【Linux】进程信号“疑问?坤叫算信号吗?“
  2. 学了3D建模,我可以干嘛?
  3. 很多人说SEO是忽悠,大牛们都放弃SEO行业?
  4. 【源码】Wankel旋转式内燃机壳体轮廓的MATLAB程序设计
  5. HTML入门笔记15-HTML中插入外部链接
  6. SpringBoot学习历程
  7. SpringBoot学习目录
  8. 基于同步整流技术的Buck开关电源设计方法
  9. TerarkDB 数据库的性能报告与技术解析
  10. 同济大学计算机专业录取分数线,同济大学全国各省各专业录取分数线汇总