先将一张8位图转变为24位图的方法
%单张处理
%方法一:
clc;
clear;
%8位图转24位图
img = imread('D:\0001wyh研究生\实验照片整理\2022.3.21\1\r_10.bmp');
[rows,cols]=size(img);
r=zeros(rows,cols);
g=zeros(rows,cols);
b=zeros(rows,cols);
r=double(img);
g=double(img);
b=double(img);
x=cat(3,r,g,b);
imwrite(uint8(x),'D:\0001wyh研究生\实验照片整理\2022.3.21\1\result\r_10.bmp');
%方法二
img = imread('D:\0001wyh研究生\实验照片整理\2022.3.21\1\r_10.bmp');
x = repmat(img,[1,1,3]);%将单通道图片转换为三通道图片
imwrite(x,'D:\0001wyh研究生\实验照片整理\2022.3.21\1\result\r_10.bmp');
%方法三
img = imread('D:\0001wyh研究生\实验照片整理\2022.3.21\1\r_10.bmp');
x(:,:,1) = img;
x(:,:,2) = img;
x(:,:,3) = img;
imwrite(x,'D:\0001wyh研究生\实验照片整理\2022.3.21\1\result\r_10.bmp');
%批量
file_path = 'D:\0001wyh研究生\实验照片整理\2022.3.21\1\8位图\';% 图像文件夹路径
img_path_list = dir(strcat(file_path,'*.bmp'));%获取该文件夹中所有jpg格式的图像
img_num = length(img_path_list);%获取图像总数量
if img_num > 0 %有满足条件的图像
for j = 1:img_num %逐一读取图像
image_name = img_path_list(j).name;% 图像名
image = imread(strcat(file_path,image_name));
fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 显示正在处理的图像名
%方法一:
% [rows,cols]=size(image);
% r=zeros(rows,cols);
% g=zeros(rows,cols);
% b=zeros(rows,cols);
% r=double(image);
% g=double(image);
% b=double(image);
% rgb=cat(3,r,g,b);
% x=uint8(rgb);
%方法二:
x(:,:,1) = image;
x(:,:,2) = image;
x(:,:,3) = image;
%方法三:
% x = repmat(image,[1,1,3]);%将单通道图片转换为三通道图片
file_path2='D:\0001wyh研究生\实验照片整理\2022.3.21\1\result3\';
image_name2=strcat(file_path2,image_name);
imwrite(x,image_name2);
end
end