您的位置:首页 > 编程语言 > MATLAB

【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

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行:显示原始图像和解码之后的只含红色分量的图像。

运行结果:



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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: