MATLAB im2double、double、mat2gray、im2uint8和uint8的区别及使用

im2double 、mat2gray与double

  1. double 就是简单地把一个变量类型转换成double类型,数值大小不变
  2. mat2gray是把一个double类的数组转换成取值范围为[0,1]的归一化double类数组。
  3. 函数im2double将输入转换成double类型。如果输入是 uint8 unit16或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间
    注:
    如果输入为double类型,输出还是double类型,并不进行归一化;即先用double转换,再用im2double 转换,不会对double处理之后的图像进行归一化操作;mat2gray则会将像素值归一化处理。

im2uint8和uint8

  1. im2uint8用于将归一化到0~1之间(im2double 处理后的图像)转换为uint8类型
  2. uint8就是简单地把一个变量类型转换成uint8类型,数值大小不变
    注:
    如果对double处理之后的图像使用uint8()操作,返回值与原本的图像相同,不会出错。即im2uint8转换对应im2double 转换,数据有归一化过程;uint8对应double转换,转换过程中数值不发生变化。如果不能一一对应,则会出错。

    代码

    img=double(img);%img为图像变量
    img=uint8(img);
    img=im2double(img);
    img=im2uint8(img);
    img=mat2gray(img);

    img_re=reshape(img,size(img,1)*size(img,2),3);%将图像转换为3列的矩阵,便于查看结果。

运行结果
double转换结果
double转换

double转换后使用im2double
double转换后使用im2double

double转换之后使用mat2gray
double转换之后使用mat2gray

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值