Function Imwrite命令没有';t在Matlab中创建具有真实值的图像

Function Imwrite命令没有';t在Matlab中创建具有真实值的图像,function,matlab,Function,Matlab,我在试着写。tif图像。我在命令窗口或Matlab中的函数文件中编写了以下命令,以编写名为“A_-exam”的tif图像 输出图像(A_exam.tif)的所有值均为255,不显示图像,仅显示白色屏幕。从下面的代码中提取一个矩阵。当我计算这段代码时,矩阵的值是正确的。问题仅仅来自于编写一个图像文件 [~,Ind_max] = max(vgt,[],3); A= arrayfun(@(y) ... arrayfun(@(x) emp(x,y, Ind_max(x,y)), 1:size(vgt,1

我在试着写。tif图像。我在命令窗口或Matlab中的函数文件中编写了以下命令,以编写名为“A_-exam”的tif图像

输出图像(A_exam.tif)的所有值均为255,不显示图像,仅显示白色屏幕。从下面的代码中提取一个矩阵。当我计算这段代码时,矩阵的值是正确的。问题仅仅来自于编写一个图像文件

[~,Ind_max] = max(vgt,[],3);
A= arrayfun(@(y) ...
arrayfun(@(x) emp(x,y, Ind_max(x,y)), 1:size(vgt,1)), ... 
1:size(vgt,2), 'UniformOutput',false);
A = reshape([A{:}], size(Ind_max))
imwrite(A,'A_exam.tif','tif')
多谢各位

whos A
  Name        Size            Bytes  Class     Attributes

  A         41x41             6724  single   

调用imwrite之前的重塑看起来有问题。我会改变主意

imwrite(A,'A_exam.tif','tif') 
添加呼叫到


确保你没有混合矩阵和图像。

你能举个例子说明图像应该是什么样子以及结果是什么样子吗?还有,你是如何生成矩阵A的?它有哪种类型?原始A)矩阵的值是max(A)=8.5290,min(A)=1.2830。计算后,值和数据类型已更改为max(A)=255,min(A)=0,type=uint8。仍然不是真值:)。输出图像的预期值应介于以下范围之间:max(A)=8.5290,min(A)=1.2830。@user1769107:由于图像文件格式的限制,我很确定您将无法将这些精确值保存到tiff。关于只得到255,这是你能做的最好的了。哦,真的吗?这会让我陷入另一个麻烦。下一个过程将是相关操作,以查找7.56和4.29之间的像素值。这将是我在matlab中面临的问题之一:)无论如何,谢谢你的帮助
imwrite(mat2gray(A),'A_exam.tif');