这种用法多为opencv for c/c++中,python也有,用到的非常非常少,只有几个特殊函数用到。
图像文件格式使用的是 Unsigned 8bits吧,CvMat矩阵对应的参数类型是CV_8UC1,CV_8UC2,CV_8UC3。
(CV_8UC3,8表示无符号int8位,3通道)
而float 是32位的,对应CvMat数据结构参数就是:CV_32FC1,CV_32FC2,CV_32FC3...
double是64bits,对应CvMat数据结构参数:CV_64FC1,CV_64FC2,CV_64FC3等。
变换这种矩阵单位类型,Mat里有一个函数convertTo可以办到:
C++:void Mat::convertTo(OutputArray m, int rtype, double alpha=1, double beta=0 )
mask.convertTo(OutputArray m, CV_8UC3, -1.0, 255.0); // inverse the mask matrix means I_new(x,j) = -1*I(x,j) + 255.
rtype 参数就是上述单位类型。具体可以查相关的文档。