george 发表于 2010-2-11 19:33

【求助】图像imwrite后显示不出来

用程序生成一个75x75 double (min 0.9930 max 3.8507)的图像后.然后写入文件用下面的命令

imwrite(uint16(f')*100,'test.tif','tif')

现在问题是,我用图像软件打开生成的图像文件text.tif后,看到的却和用imagesc(f')的图像不同

请问我该如何写入,才能保证两个是一样的?

谢谢了

附件为生成的矩阵
或者
下载链接:http://cid-e69a1470b42f3bcc.skydrive.live.com/self.aspx/.Public/matlab/matlab.mat

[ 本帖最后由 george 于 2010-2-11 19:39 编辑 ]

ChaChing 发表于 2010-2-11 23:23

imagesc后, 可以使用saveas即可!
imwrite个人以前没使用, 刚试下还没试成!
我想或许是因有无Scale data的缘故吧! 这个人改天再试试学习

george 发表于 2010-2-17 18:58

原帖由 ChaChing 于 2010-2-11 23:23 发表 http://www.chinavib.com/forum/images/common/back.gif
imagesc后, 可以使用saveas即可!
imwrite个人以前没使用, 刚试下还没试成!
我想或许是因有无Scale data的缘故吧! 这个人改天再试试学习

还是谢谢了

我又看了看矩阵数值范围,发现该范围过小(0.9930~3.8507) 。 所以如果把数值类型double转换为uint16后,会损失图像信息。
现在我把该矩阵乘以10000. 然后再用imwrite写入文件,但是显示还是用matlab显示的不一样。

如果用saveas保存的话,图像带有刻度,而且还有原图像外的空白部分。但是我是想要和原矩阵一样大小的图像的。

再次谢谢了
页: [1]
查看完整版本: 【求助】图像imwrite后显示不出来