OpenCV总结——convertTo函数与浮点数类型

在使用convertTo函数是遇到了一个现象,这里记录一下(本来以为用的很熟的函数一段时间后还会遇到新的问题,还是需要进一步的研究与学习)。
在使用convertTo函数将CV_8UC1类型的图像转化为CV_32F或CV_64F的时候出现图像变成全白或者部分图像有内容剩下的都不对的情况。查找相关资料后在这里做一个记录,引发这个现象的原因是浮点数类型在颜色空间中的范围是0-1.0之间,但是CV_8UC1中的像素范围是0-255,这样如果直接转化过去的话,很明显大部分的像素都超过1,全是白的,这里需要先对像素进行一定的缩放,保证它是在浮点类型的颜色范围内的。
这里用到的是

temp.convertTo(temp, CV_32FC1,1.0/255);

一般最后两个参数用默认值就够了,但是这里需要对像素进行一定的缩放,所以设置了缩放比例1.0/255,第四个参数是在缩放的基础上会再加一个值,这里不需要所以用默认值0就好,这样图像会被缩放至浮点数的范围,之后使用imshow的时候,这个函数会自动乘以255进行显示。

你可能感兴趣的:(OpenCV)