【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片

摘要:
在JPEG解码中对JPG图片进行了解码,解码的数据分为RGB三色,这三色数据存放在3个文件中red.dat,green.dat,blue.dat;用matlab把这3色数据复原成图像。red.dat文件中存放的是16进制的数据格式如上图,这里只列了12个数据,总共有1080*1920个数据。第4行:读取16进制的red.dat文件中的数据放到a中。第5行:16进制转化为10进制。第15行:设置绿色分量,这里设为0;第16行:设置蓝色分量,这里设为0;第17行:读取原始图像。

在JPEG解码中对JPG图片进行了解码,解码的数据分为RGB三色,这三色数据(16进制)存放在3个文件中red.dat,green.dat,blue.dat;用matlab把这3色数据复原成图像。

这里仅对红色处理,其他两种颜色的处理方法类似。

这里解码的是一幅1080*1920的jpg图片。

red.dat文件中存放的是16进制的数据

【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片第1张

格式如上图,这里只列了12个数据,总共有1080*1920个数据。

Matlab源程序如下

rgb
1 clear;
2 RGB=imread('blank.jpg');
3 red=zeros(1080,1920);
4 a=textread('red.dat','%s')';5 b=hex2dec(a);
6 c=uint8(b);
7 for i=1:1080
8 for j=1:1920
9 m=1920*(i-1)+j;
10 red(i,j)=c(m);
11 end
12 end
13
14 RGB(:,:,1)=red;
15 RGB(:,:,2)=0;
16 RGB(:,:,3)=0;
17 jpeg=imread('picture.jpg');
18 subplot(1,2,1),imshow(jpeg);
19 subplot(1,2,2),imshow(RGB);

第2行:blank.jpg是一幅1080*1920的空图像。

第3行:建立一个二维数组red用来保存R的值。

第4行:读取16进制的red.dat文件中的数据放到a中。

第5行:16进制转化为10进制。

第7-12行:读取的数据放到二维数组red中。

第14行:设置红色分量。

第15行:设置绿色分量,这里设为0;

第16行:设置蓝色分量,这里设为0;

第17行:读取原始图像。

第18-19行:显示原始图像和解码之后的只含红色分量的图像。

运行结果:

【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片第2张

左边的为原始图像,右边的为解码之后的只含红色分量的图像。

【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片第3张

【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片第4张

免责声明:文章转载自《【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇浅谈FPGA资源评估Acer电脑【no bootable device】引导修复下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Cesium】天空盒子

skyBox: new Cesium.SkyBox({ sources: { positiveX: 'static/image/skyBox/posx.jpg', negativeX: 'static/image/skyBox/negx.jpg', positiveY: 'static/image/skyBox/negy.jpg', negativeY...

《Qt数据类型》--QByteArray,QString,int,hex之间的转化

对于QString和QByteArray,他们都有一个toInt的静态函数,QString::toInt()是根据string的字面值转化为int类型,比如string:"123",转化为int类型就变为int:123。而对于QByteArray::toInt()是将16进制的数据转化为10进制之后得到int类型,比如byte:0xf8-->dec:...

Matlab基本函数-ginput函数

1、ginput函数:获取指定点坐标值 2、用法说明 (1)[x,y] = ginput(n) 函数从当前的坐标图上选择n个点,并返回这n个点的相应的坐标向量x、y。n个点可由鼠标定位。用户可以按下回车键在输入n个点之前终止输入; (2)[x,y] = ginput 函数获得任意个数的输入点,直到用户按下回车键为止并返回这n个点的相应的坐标向量x、y; (...

非线性方程(组):MATLAB内置函数 solve, vpasolve, fsolve, fzero, roots [MATLAB]

MATLAB函数 solve, vpasolve, fsolve, fzero, roots 功能和信息概览 求解函数 多项式型 非多项式型 一维 高维 符号 数值 算法 solve 支持,得到全部符号解 若可符号解则得到根 支持 支持 支持 当无符号解时  符号解方法:利用等式性质得到标准可解函数的方法 基本即模拟人工运算 vpasolv...

MATLAB中矢量场图的绘制 (quiver/quiver3/dfield/pplane) Plot the vector field with MATLAB

1.quiver函数  一般用于绘制二维矢量场图,函数调用方法如下: quiver(x,y,u,v)    该函数展示了点(x,y)对应的的矢量(u,v)。其中,x的长度要求等于u、v的列数,y的长度要求等于u、v的行数。在绘制图像的过程中,通常用 meshgrid 来生成所需的网格采样点。 下面举几个例子: 例1:一个最简单的例子,该二维矢量场图中的矢...

matlab GUI封装exe文件

        学习matlab过程中,有时有些程序处理数据时老是看着代码,也会觉得疲倦,那么要试一试matlab的GUI吗?我就是这么使用matlab的GUI制作一个小程序,并且使用matlab封装成了exe文件。         那么如何使用matlab封装exe文件呢?         1.安装MCRinstaller.exe文件,在matlab安装...