【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片
2012-04-01 01:37
911 查看
在JPEG解码中对JPG图片进行了解码,解码的数据分为RGB三色,这三色数据(16进制)存放在3个文件中red.dat,green.dat,blue.dat;用matlab把这3色数据复原成图像。
这里仅对红色处理,其他两种颜色的处理方法类似。
这里解码的是一幅1080*1920的jpg图片。
red.dat文件中存放的是16进制的数据
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行:显示原始图像和解码之后的只含红色分量的图像。
运行结果:
左边的为原始图像,右边的为解码之后的只含红色分量的图像。
这里仅对红色处理,其他两种颜色的处理方法类似。
这里解码的是一幅1080*1920的jpg图片。
red.dat文件中存放的是16进制的数据
rgb
clear; RGB=imread('blank.jpg'); red=zeros(1080,1920); a=textread('red.dat','%s')'; b=hex2dec(a); c=uint8(b); for i=1:1080 for j=1:1920 m=1920*(i-1)+j; red(i,j)=c(m); end end RGB(:,:,1)=red; RGB(:,:,2)=0; RGB(:,:,3)=0; jpeg=imread('picture.jpg'); subplot(1,2,1),imshow(jpeg); 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学习笔记 彩色图像处理
- 【Matlab图像处理】学习笔记:二值图片
- 【Matlab图像处理】学习笔记:提取图片的R,G,B分量
- 【Matlab图像处理】学习笔记:cat函数合成RGB 图像
- MATLAB图像处理学习笔记之一
- Matlab图像处理学习笔记(八):用广义霍夫变换筛选sift特征点
- MATLAB图像处理_学习笔记
- Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI
- 图像处理学习笔记之MATLAB中imhist、imadjust、stretchlim函数实现
- Matlab 图像处理入门学习笔记—1.图片格式转换
- Matlab图像处理学习笔记(八):用广义霍夫变换筛选sift特征点
- Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI
- MATLAB学习笔记 形态学图像处理(一)
- Matlab图像处理学习笔记(二):基于颜色的图像分割
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- Java对图片的处理---缩放图像、图像切割、图像类型转换、彩色转为黑白
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- MATLAB与图像处理(二):批处理读取多张图片,cell
- Matlab图像处理学习笔记(九):获取叠加物体的数量并进行分割
- Matlab图像处理学习笔记(三):基于匹配的目标识别