www.3112.net > mAtlAB数据类型转换——int8转换成unit8

mAtlAB数据类型转换——int8转换成unit8

最简单的方法是把I改为double型后做+128计算再转为uint8.即I=double(I)+128;I=uint8(I); 当然你也可逐点遍历I,以求得新的一个unit8矩阵J,通过判断正负给该点J(i,j)赋值:若I(i,j)>=0时:J(i,j)=128+uint8(I(i,j));若I(i,j)<0时, J(i,j)=128-uint8(abs(I(i,j)));但需要说明的是matlab中循环的效率不及矩阵直接运算的高.

直接int8(A)强制转换,注意数据范围就行了.因为是直接截尾的.

内存不足,说明你的数据量太大了,一个double是8字节,值uint8的8倍.试试single看看,single是double的一半内存.要是还内存不够,除非你改算法;或者用64bit的matlab试试.

已经有满意回答了?我蛋疼 告诉你吧 如果你那个矩阵是T 那么 T = im2unit8(T);ok

1、首先,可以在命令行窗口直接输入命令,回车即可看到matlab软件中的基本命令语句的信息.2、点击其中一个语句,就可以看到命令行窗口.3、假如知道大概的所在的范围,比如某个工具箱,输入help toolboxname,就可以得到工具箱的一些信息.4、关于算术类型有很多判定函数.isinteger判定一个数组是不是整型,isfloat判定是不是浮点型(single和double都是浮点型).5、flintmax表示用浮点数所能表示的最大精确整数.可以带有参数'single'或者'double',就完成了.

使用double命令 比如: a=int8(124);a2=double(a);whos该段代码先创建了一个uint8的变量a 再用double命令将a变为double变量并赋值给了a2 通过whos显示类型: Name Size Bytes Class Attributes a 1x1 1 int8 a2 1x1 8 double

代表无符号的8位整数,最大值为255.MATLAB支持的数据类型有: double -- Double precision floating point numeric array logical -- Logical array char -- Character array single -- Single precision floating-point numeric array float -- Double or

在矩阵中使用的数据类型是double.因此可以通过语句i2=im2double(i1) ;把图像数组i1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出,可能提示的错误为:function '*' is not defined for values of class 'uint8'再给你几条语句,希望对你有帮助:im2double():将图像数组转换成double精度类型im2uint8():将图像数组转换成unit8类型 im2uint16():将图像数组转换成unit16类型

写错了吧,应该是uint8,表示变量是无符号整数,范围是0到255.uint8是指0~2^8-1 = 255数据类型,一般在图像处理中很常见.

就是改变数据类型.那句话把double型的矩阵转换成了uint8型.

相关搜索:

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com