在MATLAB中编写一个双矩阵
我如何才能在MATLAB中编写一个双矩阵,matlab,matrix,Matlab,Matrix,我如何才能imwrite此值[12 13.5;15 107.75]而不在imread中更改 我想保存我的信息。但是,如果当我读取这个矩阵时,我uint8这个值,我有这个[12 13;15 108]这不能由imwrite完成。你可以尝试函数fprintf。 (让[12 13.5;15 107.75]成为A) 从imwrite文档: imwrite(A,文件名)将图像数据A写入文件名指定的文件。 如果数据类型为uint16,且输出文件格式支持16位数据(JPEG、PNG和TIFF),则imwrite
imwrite
此值[12 13.5;15 107.75]
而不在imread
中更改
我想保存我的信息。但是,如果当我读取这个矩阵时,我
uint8
这个值,我有这个[12 13;15 108]
这不能由imwrite完成。你可以尝试函数fprintf。
(让[12 13.5;15 107.75]
成为A
)
从imwrite
文档:
imwrite(A,文件名)将图像数据A写入文件名指定的文件。
如果数据类型为uint16,且输出文件格式支持16位数据(JPEG、PNG和TIFF),则imwrite输出16位值
因此,您可以将A
乘以100
,然后将其转换为uint16
。您将获得[1200 1350;1500 10775]
。将其写入(JPEG、PNG或TIFF)
例如imwrite(a,'image.JPEG')
现在imread('image.jpeg')
将返回16位
整数。将它们转换为double,然后除以100
得到原始数据。(例如,out=double(imread('image.jpeg'))/100
)
注意:16位中可表示的最高值为65536
。因此,这意味着放大后输入的数字必须小于65536
,否则将丢失信息。如果使用小于255的双精度(小数点后两位),则放大后的最大值将是25599
,该值小于65536
,因此可以。如果输入值的范围或精度不同,请小心
尽管如此,我认为您应该按照T.Huang的建议,使用fprintf
将数据写入一个文件。@shiva如果这对您有帮助,请选择此答案作为接受答案(单击答案分数计数器下方的勾号)。它将帮助其他来这里的人。