深圳网站设计价格,贵州三大交通建设企业,衡阳县专业做淘宝网站,erp系统有哪些一种数据类型转为另一种数据类型#xff0c;不改变图像大小#xff0c;但每个像素值可能会变
src.convertTo(dst, type, scale, shift);Scale和shitf默认为0#xff08;这两个参数也相当于对比度和亮度#xff09;
现在有个8位图像#xff0c;把8位转成32位 可以看到像素…一种数据类型转为另一种数据类型不改变图像大小但每个像素值可能会变
src.convertTo(dst, type, scale, shift);Scale和shitf默认为0这两个参数也相当于对比度和亮度
现在有个8位图像把8位转成32位 可以看到像素大小没变但位深度变了8位无符号情况下的图像像素值超过255就溢出但转成32位就不会溢出。
scale为1.0/255shitf默认为0 像素值的计算过程为mat2(191*(1.0/255), 127*(1.0/255), 63*(1.0/255), 0)
scale为1.0/255shitf为-1 像素值的计算过程为mat2(191*(1.0/255)-1, 127*(1.0/255)-1, 63*(1.0/255)-1, -1)
我们知道16为无符号像素范围为0-65535现在有个八位图像Img像素值是255转到十六位
img.convertTo(img, CV_16U); img像素值还是255但会出现一个现象 原来8为的时候像素值是255但图像显示都很正常现在转到16位像素值依旧255但这时候图像显示基本全黑这是为啥
因为8位的时候像素范围是0-255最亮的像素点大小即为255当然可以正常显示但16位范围0-65535最亮点在65535255相比65535可以忽略不计所以图像基本全黑这时候想要正常显示需要做归一化处理normalize 把0-255扩大到0-65535这时候能正常显示图像。
转成32位需要注意的是 32F图像显示范围为0-1img.convertTo(img, CV_32F); 8位255值转32位依旧255但32位图像显示范围0-1超过1就是全白这时候需要把32位图像归一化处理。
normalize(img,img, 0, 1, NORM_MINMAX); img范围0-1类型32位不变。 注意不能直接把高位往低位转比如16位转8位低于255的不变高于的全部转位255数据的实际信息会丢失如果设置为很大的值数据丢失的会更大。 注意归一化不会改变图像位深度之前是16位之后也是16位