使用Matlab创建灰度级蒙版,并将其写为灰度图像。

时间:2017-11-03 12:45:38

标签: matlab image-processing matlab-figure

我正在生成一个灰度图案,要加载到我的SLM(空间光调制器)上。图案为1920x1080像素。我有255个灰度值。我尝试了这段代码来创建一个灰度级掩码。当我在Matlab中打开时,我可以将其视为灰度级,但是当我将图像写为bmp文件然后它变成二进制文件时。我该如何解决这个问题。以下是我的代码。

clear all
close all
mask=zeros(1080,1920);
% imshow(mask,[])

for k=1:500
for i=1:1080
mask(i,k)=randperm(256,1);
end
end



% mask3=Fit_GrayLevel_To_SLM_Vector(mask);
imshow(mask,[])
imwrite(mask,'mymask4.bmp')

1 个答案:

答案 0 :(得分:2)

imshow与输入图像动态上的imwrite没有相同的假设。更准确地说,来自imwrite

的文档
  

如果A是数据类型为double或single的灰度或RGB彩色图像,则 imwrite假定动态范围为[0,1] ,并在将数据写入之前自动将数据缩放255该文件为8位值

因此,请将数据存储在uint8数组中,或者在写入文件之前将像素值除以255。