我有一个256 graylevel位图图像,我在matlab中创建。我想用matlab将它保存到24位灰度图像中? 这是我在mtlab中编写的代码。将灰度图像保存为bmp 程序创建随机相位maks行像素列10列并写入 %文件到计算机。 %返回1D中的输入向量Ein。
clear all
close all
for m=1:25
mask1=zeros(1140,912);
line=randi(255,1140,1);
Ein(:,:,m)=line;
% line=randi(255,540,1);
% temp_line=line;
% % save('line')
% mask=zeros(1080,1)
% i=1;
%
% for k=1:length(line)
% for i=i:i+1
%
% mask(i)=line(k);
%
% end
% i=i+1;
% end
% line=mask;
mask1(:,456)=line(:,:);
% mask(1:1080,956)=line;
% mask(1:1080,957)=line;
% mask(1:1080,958)=line;
% mask(1:1080,959)=line;
% mask(1:1080,960)=line;
% mask(1:1080,961)=line;
% mask(1:1080,962)=line;
% mask(1:1080,963)=line;
% mask(1:1080,964)=line;
% imwrite(unit8(mask),'Dec_21_mask_1.bmp')
imwrite(uint8(mask1),sprintf('DMDmask_%d.bmp',m))
% imwrite(uint8(mask1),'new_mask4.bmp')
% f=imread('DMDmask_1.bmp');
% figure
% imshow(f)
% figure
%
% imshow((mask),[])
% Ein_angle=Fit_GrayLevel_To_Ein_Vector(mask);
% Ein_angle=Fit_GrayLevel_To_Ein_Vector(line);
%
% figure
%
% imshow(Ein_angle)
% Ein(m,:,:)=exp(1i*Ein_angle(:,:));
% figure
% imshow(angle(Ein));
end
save('Ein')
% mask=angle(mask);
%
% SLM_mask=Fit_GrayLevel_To_SLM_Vector(mask);
% figure
% imshow(SLM_mask)
答案 0 :(得分:0)
我认为您希望将图像保存为24位RGB图像,而不是24位灰度图像,因为这些图像完全没有标准,而且在我漫长的职业生涯中从未见过。
要将其转换为24位RGB图像,您可以这样做:
rgb_image = repmat(mask1,[1,1,3]);
imwrite(uint8(rgb_image),sprintf('DMDmask_%d.bmp',m))