matlab中double和im2double两个函数间的区别

作者&投稿:右静 (若有异议请与网页底部的电邮联系)
matlab中double和im2double两个函数间的区别~

double
就是简单地把一个变量的类型转换成double型,数值大小不变,比如一个unit8类型变量a=1,double(a)的结果还是6,不过现在a已经是double型了,在图像处理中,用的不多;
常用的是im2double函数,如果输入是
uint8
unit16
或者是二值的logical类型,则函数im2double
将其值归一化到0~1之间。
如果输入本身就是double类型,输出还是double类型,并不进行归一化。。
mat2gray是将图像矩阵归一化操作,常用的为A
=
im2uint8(mat2gray(image)),这样就将image矩阵转化为uint8类型的图像。

double 就是简单地把一个变量的类型转换成double型,数值大小不变,比如一个unit8类型变量a=1,double(a)的结果还是6,不过现在a已经是double型了,在图像处理中,用的不多;
常用的是im2double函数,如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间。
如果输入本身就是double类型,输出还是double类型,并不进行归一化。。
mat2gray是将图像矩阵归一化操作,常用的为A = im2uint8(mat2gray(image)),这样就将image矩阵转化为uint8类型的图像。

double 就是简单地把一个变量的类型转换成double型,数值大小不变,比如一个unit8类型变量a=1,double(a)的结果还是6,不过现在a已经是double型了,在图像处理中,用的不多;
常用的是im2double函数,如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间。
如果输入本身就是double类型,输出还是double类型,并不进行归一化。。
mat2gray是将图像矩阵归一化操作,常用的为A = im2uint8(mat2gray(image)),这样就将image矩阵转化为uint8类型的图像。

double只做数据类型转换,(可以认为)不会修改数值本身。

im2double除了做数据类型转换还要对数据做线性缩放。

举例:

a = uint8(250);
b = double(a)
c = im2double(a)

请观察运行结果即知道区别。




安溪县15586424934: Matlab图像处理中im2double和double的区别 -
余矿益母: double 就是简单地把一个变量的类型转换成double型,数值大小不变,比如一个unit8类型变量a=1,double(a)的结果还是6,不过现在a已经是double型了,在图像处理中,用的不多; 常用的是im2double函数,如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间. 如果输入本身就是double类型,输出还是double类型,并不进行归一化.. mat2gray是将图像矩阵归一化操作,常用的为A = im2uint8(mat2gray(image)),这样就将image矩阵转化为uint8类型的图像.

安溪县15586424934: matlab中double函数 -
余矿益母: matlab中double函数:一般地,对数函数是以幂(真数)为自变量,指数为因变量,底数为常量的函数. 对数函数是6类基本初等函数之一.其中对数的定义: 如果ax =N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN,读作以a为底...

安溪县15586424934: matlab里的这句话: g1=im2double(g1);是什么意思 -
余矿益母: 类型转化 把一幅图像矩阵作为一个输入类型,如果矩阵类型为double型.则不改变矩阵类型.如果非double类型,比如uchar8 其它类型.则按比例的将其缩放至double类型.

安溪县15586424934: image=im2double(image)是啥意思啊 -
余矿益母: matlab图像处理中 把image转为im2double类型 double 就是简单地把一个变量类型转换成double类型,数值大小不变;比如 a=6 是个unit8类型的话,double(a)的结果还是6,不过现在这个6是double类型的.函数im2double将输入转换成double类型.如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间,当然就是double类型的了.如果输入本身就是double类型,输出还是double类型,并不进行归一化

安溪县15586424934: 在matlab中处理图片,我用到了语句,im2double.我现在想要在C++中编写同样的程序. -
余矿益母: 读取文件后把储存像素点的数组改成double型就行了,具体是一个个复制还是强制类型转换还是其他的方法看代码了

安溪县15586424934: matlab中double和im2double的问题!!求高人~ -
余矿益母: uint8的图像里 im2double其实就是double(I/255); 像素值被标准化到0—1.16位图像以此类推.

安溪县15586424934: matlab中 double是多少位的? -
余矿益母: matlab中 double是64位的,大多数的函数和操作都定义在double数据结构.matlab中double是强制类型转换语句,将其它形式的数组转换为double类型. 例如: syms x equ = 1+x-4; y = solve(equ); 此时解出的y是一个syms类型变量3、用double(y)可以将y转变为double类型变量3,从而可以带入下一步继续进行计算.

安溪县15586424934: 如何用MATLAB将数据转化成图? -
余矿益母: Matlab中的图像数据类型转换 MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double因此 I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出,可能提示的错误为:...

安溪县15586424934: MATLAB中的double array 是什么意思? -
余矿益母: 意为双精度浮点型数组. 在matlab中的double类型: matlab默认的数据类型是double(64位) . double是双精度浮点数,保留16位有效数字 . 双精度到底是几位,与你的系统有关的,如果你的系统是32位的,那么一般双精度是64位,单精度就...

安溪县15586424934: matlab中output data type选择double是什么意思? -
余矿益母: output data type:选择输出数据类型.一般会有两种选择,一种是double,一种是float.double 和 float 的区别是double精度高,有效数字16位,float精度7位.但是,double消耗内存是float的两倍,double的运算速度比float慢得多,所以matlab在即将运算的时候会向用户反馈信息,如果用户要求计算结果精度高,那么matlab就会采取double计算方式,反之则采用float.通常情况下,为了节省内存,加快运算速度,能用单精度时不要用双精度.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网