matlab图像处理注意溢出!先要im2double!

imagedata_comb=imagedata_ebic*addnumber_ebic+imagedata_sem*addnumber_sem; %注意溢出啊!!!uint8最大值是255,也就是说加起来大于255的都变为了255!!!

在图像处理中,B=double(A),B=im2double(A),B=mat2gray(A)这三个函数有什么不同啊,在进行数据类型转换时应该用哪个呢?

double函数只是将读入图像的uint8数据转换为double类型,一般不使用,常用的是im2double函数,将uint8图像转为double类型,范围为0-1,如果是255的图像,那么255转为1,0还是0,中间的做相应改变。

其实做好的是mat2gray(imread('image.bmp'));这样不管读进来的是uint8,还是uint32图像都能转为0-1 double,im2double把255当做1


mat2gray是将最终获得的矩阵转化为灰度图像。常用的为
A = mat2gray(result)

A 为0-1的double类型,matlab在遇到double时是把1当做白色,0当做黑色的,刚好

posted on 2013-12-08 21:50  isen1988  阅读(1843)  评论(0编辑  收藏  举报

导航