MATLAB完成十六进制数据转换为jpg图像
- 本文档给出了十六进制数据(以FFD8开始,至FFD9结束)转换为jpg图像的matlab程序
- 程序内部也涉及到了十进制转换成jpg,uint8转换为jpg
数据格式
data = 'FFD8FFE000104A46494600010100000100010000FFDB00C5000D090A0B0A080D0B0A……FFD9';
- 注意中间没有空格
输出图像
演示数据及完整代码
链接:https://pan.baidu.com/s/1407ZOAsv230wTU7lGdpzxg
提取码:p2s5
完整代码
clc
clear
close all
% 读入数据(数据格式:以FFD8开始,至FFD9结束;数据中间不含空格,例如:FFD8FFE000104A4649460001……)
data = importdata ('2022-07-01 12-12-23.txt');
data = data{1,1};
% 将十六进制转化为uint8格式
c = zeros(size(data,2),1);
for i = 1:2:size(data,2)
b = hex2dec(data(1,i:i+1));
c((i+1)/2,1) = b;
end
c = uint8(c);
% 保存图片为out.jpg
outfile = 'out.jpg';
[fid, msg] = fopen(outfile, 'wb');
fwrite(fid, c, 'uint8');
fclose(fid);
% 显示图像
p = imread(outfile);
imshow(outfile);
参考资料
MatLab:打开JPEG二进制数据作为图像(回复内容)