matlab中图像数据类型转换
2014-04-04 13:12
861 查看
Matlab中的图像数据类型转换
MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double因此 I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出,可能提示的错误为:Function '*' is not defined for values
of class 'uint8'。
图像数据类型转换函数
默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。
im2double():将图像数组转换成double精度类型
im2uint8():将图像数组转换成unit8类型
im2uint16():将图像数组转换成unit16类型
但是:对double型图像用im2uint8(),会出现问题。double默认为0-1之间的数,uint8为0-255之间的数,如果数组uint8型x1={0,1,2},转化后为x2={0,0.5,1}; 如果数组double型y1={0,1,2},转化后为y2={0,255,255};
在用matlab工具箱做直方图处理时,图像必须为整型,即如果是double型,必须转化为整型
解决办法:
MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double因此 I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出,可能提示的错误为:Function '*' is not defined for values
of class 'uint8'。
图像数据类型转换函数
默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。
im2double():将图像数组转换成double精度类型
im2uint8():将图像数组转换成unit8类型
im2uint16():将图像数组转换成unit16类型
但是:对double型图像用im2uint8(),会出现问题。double默认为0-1之间的数,uint8为0-255之间的数,如果数组uint8型x1={0,1,2},转化后为x2={0,0.5,1}; 如果数组double型y1={0,1,2},转化后为y2={0,255,255};
在用matlab工具箱做直方图处理时,图像必须为整型,即如果是double型,必须转化为整型
解决办法:
|
相关文章推荐
- 图像类型、MATLAB数据类型,以及类型之间的转换(二)
- 图像数据类型的转换 matlab opencv
- 图像类型、MATLAB数据类型,以及类型之间的转换(三)
- 图像类型、MATLAB数据类型,以及类型之间的转换(一)
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- matlab中图像数据类型及转换函数
- matlab中数据类型及图像显示
- 【练习6.6】拉普拉斯cvLaplace团块及边缘检测、图像数据类型转换cvConvertScaleAbs
- MATLAB和Opencv中数据类型转换
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- matlab中数据类型及图像显示
- matlab中数据类型及图像显示
- Matlab数据类型和转换
- matlab把数据从胞元类型(cell)转换为矩阵类型(matrix)
- Python学习04_图像数据类型及颜色空间转换
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- matlab图像中的数据类型
- Matlab图像数据类型unit8,double关系
- matlab数据类型和转换
- matlab数据转换为字符串并合并字符串标注到图像曲线上