锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

将RGB数据转为图片的MATLAB代码

时间:2023-09-27 19:37:02 rgb灯带灯条单边出线连接器rgb灯条单边出线连接器

利用MATLAB将R,G,B通道的像素值转换为图片
硬件开发通常会发生R,G,B为了检查三个通道的像素值是否正确 ,我们通常使用它MATLAB代码还原成图像。

MATLAB代码如下:

%% 读入R通道16进制数据 fid_r = fopen('路径\r.txt', 'r '); if fid_r == -1     disp('fopen failed'); else     r_hex = textscan(fid_r,'%s'); end fclose(fid_r); %% 阅读G通道16进制数据 fid_g = fopen('路径\g.txt', 'r '); if fid_g == -1     disp('fopen failed'); else     g_hex = textscan(fid_g,'%s'); end fclose(fid_g); %% 阅读B通道16进制数据 fid_b = fopen('路径\b.txt', 'r '); if fid_b == -1     disp('fopen failed'); else     b_hex = textscan(fid_b,'%s'); end fclose(fid_b); %% 从R通道元组中读出16进制数并转换为十进制无符号数据 for i=1:length(r_hex{ 
       1})
    r_dec(i) = hex2dec(r_hex{ 
       1}{ 
       i});
end
%% 从G通道元胞数组中读出16进制数,并转换为十进制无符号数据
for i=1:length(g_hex{ 
       1})
    g_dec(i) = hex2dec(g_hex{ 
       1}{ 
       i});
end
%% 从B通道元胞数组中读出16进制数,并转换为十进制无符号数据
for i=1:length(b_hex{ 
       1})
    b_dec(i) = hex2dec(b_hex{ 
       1}{ 
       i});
end
%%矩阵1维变为1920* 1080列
r_trans_dimens = reshape(r_dec,1920,1080);
g_trans_dimens = reshape(g_dec,1920,1080);
b_trans_dimens = reshape(b_dec,1920,1080);

%% 将R,G,B三个通道的数据矩阵进行转置,变为1080* 1920列
r_transpose = r_trans_dimens.';
g_transpose = g_trans_dimens.';
b_transpose = b_trans_dimens.';
%% R,G,B三个通道的数据合在一起
RGB(:,:,1) = r_transpose;
RGB(:,:,2) = g_transpose;
RGB(:,:,3) = b_transpose;
%% 数据归一化,使矩阵的每个元素的值都在01之间
rgb = mat2gray(RGB);
%% 显示转换后的图片
imshow(rgb);
%% 保存转换后的图片
imwrite(rgb, '路径\rgb.png');

利用MATLAB将RGB数值还原为图像的效果如下图所示。

点击即可下载代码

在这里插入图片描述

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章