imshow的输入数据格式

opencv

imshow不允许除uchar以外的数据类型,所以经过处理后的图像数据,可能为浮点数或者大于8bit的整型,此时需要先进行灰度线性变换并强制转换为uchar后才能用imshow显示


matlab

imshow允许输入各种类型的数据,一般包括:

double或float32,范围[0,1]

uint8,范围[0,255]

uint16,范围[0,65535]

溢出:超出范围的值置为边界值,如double数据,大于1,置为1,显示为白色,又如,uint8,大于255,一律显示为白色


如果这样调用: imshow(img,[])

则将输入数据的动态范围压缩至[min(img(:)),max(img(:))],所以使用该方式,可以不用理会输入数据类型,此时不会出现溢出


你可能感兴趣的:(matlab,opencv)