CV_32F转为CV_8U,图像类型转换

    img = cv::Mat::zeros(*ny, *nx, CV_32F);

    maxVal = 0;
    double minVal = 0;
    minMaxLoc(img, &minVal, &maxVal);

    img8bits = cv::Mat::zeros(*ny, *nx, CV_8UC1);
    if (minVal != maxVal)
        img.convertTo(img8bits, CV_8U, 255.0 / (maxVal - minVal), -255.0*minVal / (maxVal - minVal));

 

convertTo的用法
src.convertTo(dst, type, scale, shift)
缩放并转换到另外一种数据类型:
dst:目的矩阵;
type:需要的输出矩阵类型,或者更明确的,是输出矩阵的深度,如果是负值(常用-1)则输出矩阵和输入矩阵类型相同;
scale:比例因子;
shift:将输入数组元素按比例缩放后添加的值;
dst(i)=src(i)xscale+(shift,shift,...)

如果scale=1,shift=0,则不进行比例缩放。
如果输入数组与输出数组的类型相同,则函数可以被用于缩放和平移矩阵或图像;
 

你可能感兴趣的:(编程)