Matlab 的imwrite函数

来源:互联网 发布:苍之骑士团卡数据下载 编辑:程序博客网 时间:2024/04/29 06:37

下面记录我在实验中遇到的有意思的现象:

实验的内容:将logical数据类型的矩阵保存为图片,然后再从图片中将数据读取出来,看该数据是否与原始数据一致。

实验的代码:

代码1:

clearlogicalMatrix = logical([1 0; 0 1])imwrite(logicalMatrix, 'logicaltest.bmp'); output = imread('logicaltest.bmp')

结果:

logicalMatrix =

     1     0
     0     1

output =


     1     0
     0     1

注意:这里的output中元素的数据类型是logical


代码2:

clearlogicalMatrix = logical([1 0; 0 1])imwrite(logicalMatrix, 'logicaltest.jpg'); output = imread('logicaltest.jpg')

logicalMatrix =


     1     0
     0     1

output =

  248   14
   11  242

注意:这里的output中数据元素的类型是uint8


结论:因为图片编码的缘故,保存后的数据会发生改变,从而对从图片中读取的数据的值和类型有影响。

分析:Matlab弱化了类型的概念,在调用函数时不需要用户显式定义数据类型,因此在使用时要注意。

原创粉丝点击