一直以来,在使用MATLAB进行运算的过程中,经常会用到对图像的各种处理,因此需要对图像进行数据转换,因此对经常用到的转换进行整理,方便查看。

1、uint8转化为double用来方便图像的运算:

double函数只是将读入图像的uint8数据转换为double类型,一般不使用。

常用的是im2double函数,将uint8图像转为double类型,范围为0-1,如果是255的图像,那么255转为1,0还是0,中间的做相应改变。
MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double
因此
I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出。
   
默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;

   matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。

  im2double():将图象数组转换成double精度类型
  im2uint8():将图象数组转换成unit8类型
  im2uint16():将图象数组转换成unit16类型

2、uint8和im2uint8的区别

   在数据类型转换时候uint8和im2uint8的区别,uint8的操作仅仅是将一个double类型的小数点后面的部分去掉;

   但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。

   

图像数据在计算前需要转换为double,以保证精度;

很多矩阵数据也都是double的,要想显示其,必须先转换为图像的标准数据格式.

如果转换前的数据符合图像数据标准(比如如果是double则要位于0~1之间),那么可以直接使用im2uint8

如果转换前的数据分布不合规律,则使用uint8,将其自动切割至0~255(超过255的按255),因此最好使用mat2gray,将一个矩阵转化为灰度图像的数据格式(double)

3、double类型图像的显示

图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精度。

很多矩阵的很多矩阵数据也都是double的,要想显示它,必须先转换为图像的标准数据格式。

如果直接运行imshow(I),我们会发现显示的是一个白色的图像。

这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。

而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。

具体方法有:

imshow(I/256);    ----------将图像矩阵转化到0-1之间

imshow(I,[]);       -----------自动调整数据的范围以便于显示 (注意这里,必须是灰度图,负责不行)

imshow(uint8(I));

imshow(mat2gray(I));%

上面的mat2gray是将最终获得的矩阵转化为灰度图像。常用的为:

A = im2uint8(mat2gray(result))
   这样就将result矩阵转化为uint8类型的图像。

 

MATLAB常用数据类型的转换的更多相关文章

  1. Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

  2. VC常用数据类型使用转换

    我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]=&qu ...

  3. VC常用数据类型使用转换详解

    一.其它数据类型转换为字符串 短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); ///按二进制方式转换 长整型 ...

  4. C#常用数据类型间的转换

    数据类型有很多种,数据类型间的转换也是有很多的方法,如果不细心整理的话等到用的时候再查就会显得很浪费时间,所以决心整理出这篇博文.主要是讲解常用数据类型之间的转换方法以及常见数据类型所占字节数. 字节 ...

  5. Java 常用知识点汇总(数据类型之间转换、字符串的相关操作-截取、转换大小写等)

    1.Java四类八种数据类型 byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围- ...

  6. Java—常用数据类型

    1  Vector类 Vector类似于一个数组,但与数组相比在使用上有以下两个优点. (1) 使用的时候无需声明上限,随着元素的增加,Vector的长度会自动增加. (2) Vector提供额外的方 ...

  7. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  8. ios中常用数据类型相互转换

    ios中常用数据类型相互转换 //1. NSMutableArray和NSArray互转 // NSArray转为NSMutableArray NSMutableArray *arrM = [arr ...

  9. 语言基础:C#输入输出与数据类型及其转换

    今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...

随机推荐

  1. CentOS7安装Hadoop2.7完整流程

    总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs.mapreduce等主从关系. 1.环境,3台CentOS7,64位,Hadoo ...

  2. 配置Excel的DCOM权限

    异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-00000000004 ...

  3. Git教程之创建版本库(2)

    什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...

  4. HDU-4661 Message Passing 树形DP,排列组合

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4661 题意:有n个人呈树状结构,每个人知道一个独特的消息.每次可以让一个人将他所知的所有消息告诉和他相 ...

  5. Socket programming in C on Linux | tutorial

    TCP/IP socket programming This is a quick guide/tutorial to learning socket programming in C languag ...

  6. python中的MySQL数据库操作 连接 插入 查询 更新 操作

    MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...

  7. 运行Android应用时提示ADB是否存在于指定路径问题

    打开eclipse,选择指定的Android应用工程并Run,提示: [2014-06-28 11:32:26 - LinearLayout] The connectionto adb is down ...

  8. lightOJ 1132 Summing up Powers(矩阵 二分)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1132 题意:给出n和m.求sum(i^m)%2^32.(1<=i<=n) ...

  9. WebBrowser自动点击链接 广告自动点击 Ads Auto Click

    点击付费广告, 是目前比较流行的一种网络营销模式, 但是,如果你单纯的靠手工一个一个去点, 总觉得不划算  , 能不能实现自动的去点击呢? 答案是肯定的 .NET 里面的 WebBrowser, 可以 ...

  10. 1493: [NOI2007]项链工厂

    线段树. 真还就是个线段树.. 除去操作1,2的话,线段树很容易就处理了,问题在于如何处理操作1和2.(这点没想到).. 我们用一个delta维护操作1,如果没有旋转就+k,不然就-k. 每次读入i和 ...