OpenCV Mat 类型及对应编号如下表:
其中经常使用的是CV_8UC(n)与CV_32FC(n),其中8U为Unsigned 8bits uchar 0~255,32F为Float 32bits float 3.4E38~3.4E38(Mat常用区间为0.0f~1.0f)。
OpenCV 进行Mat数据类型转换时采用converTo函数
void cv::Mat::convertTo(OutputArray m, int rtype, double alpha = 1, double beta = 0);
其中alpha为缩放比例因子,默认为1,即在使用converTo进行数据类型转换时,数据值不会改变,所以需加特定alpha值进行转换,即:
cv::Mat img_8u, img_32f;***your code***img_8u.convertTo(img_32f, CV_32F, 1/255.0); //8U转32Fimg_32f.convertTo(img_8u, CV_8U, 255.0); //32F转8U