图像处理中uint8和double的问题

来源:互联网 发布:外星人源码站 编辑:程序博客网 时间:2024/04/28 14:42
为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像。imread把灰度图像存入一个8位矩阵,当为RGB图像时,就存入8位RGB矩阵中。因此,matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算,I2=im2double(I1)  %把图像I1转换成double精度类型 (假设图形矩阵范围0~255)或者I64=double(I8)/255;   %uint转换成double如果不转换,计算会产生溢出。
意思也就是显示的时候用uint8  运算的时候用double
im2double():将图象数组转换成double精度类型
im2uint8():将图象数组转换成unit8类型
im2uint16():将图象数组转换成unit16类型
0 0
原创粉丝点击