Function Imwrite命令没有';t在Matlab中创建具有真实值的图像
我在试着写。tif图像。我在命令窗口或Matlab中的函数文件中编写了以下命令,以编写名为“A_-exam”的tif图像 输出图像(A_exam.tif)的所有值均为255,不显示图像,仅显示白色屏幕。从下面的代码中提取一个矩阵。当我计算这段代码时,矩阵的值是正确的。问题仅仅来自于编写一个图像文件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
[~,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');