opencv 3.0 灰度图 转 彩图 applyColorMap

matlab有个imagesc,在opencv中 没有对应的函数

代码

 

#include<opencv2/opencv.hpp>
using namespace cv;

void main()
{
    const char* imagename = "2.jpg";
    //产生灰度图
    Mat img = imread(imagename);
    Mat gray, color;
    cvtColor(img, gray, CV_RGB2GRAY);
    //灰度彩色映射变换
    double vmin, vmax, alpha;
    minMaxLoc(gray, &vmin, &vmax);
    alpha = 255.0 / (vmax - vmin);
    gray.convertTo(gray, CV_8U, alpha, -vmin * alpha);//图像增强
    applyColorMap(gray, color, COLORMAP_JET);

    imshow("image", img); //显示图像    
    imshow("gray", gray);
    imshow("color", color);
    waitKey();
    destroyAllWindows();

}

 

minMaxLoc()函数
功能:查找全局最小和最大数组元素并返回它们的值和它们的位置。

void minMaxLoc(InputArray src, CV_OUT double* minVal,
                           CV_OUT double* maxVal=0, CV_OUT Point* minLoc=0,
                           CV_OUT Point* maxLoc=0, InputArray mask=noArray());

参数解释
参数1:InputArray类型的src,输入单通道数组(图像)。
参数2:double*类型的minVal,返回最小值的指针。若无须返回,此值置为NULL。
参数3:double*类型的maxVal,返回最大值的指针。若无须返回,此值置为NULL。
参数4:Point*类型的minLoc,返回最小位置的指针(二维情况下)。若无须返回,此值置为NULL。
参数5:Point*类型的maxLoc,返回最大位置的指针(二维情况下)。若无须返回,此值置为NULL。
参数6:InputArray类型的mask,用于选择子阵列的可选掩膜。

 

convertTo的用法

src.convertTo(dst, type, scale, shift)

img参数为图像数据来源,其类型为Mat。
注意也不是所有格式的Mat型数据都能被使用保存为图片,目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。
如果Mat类型数据的深度和通道数不满足上面的要求,则需要使用convertTo()函数和cvtColor()函数来进行转换。
convertTo()函数负责转换数据类型不同的Mat,即可以将类似float型的Mat转换到imwrite()函数能够接受的类型。
而cvtColor()函数是负责转换不同通道的Mat,因为该函数的第4个参数就可以设置目的Mat数据的通道数(只是我们一般没有用到它,一般情况下这个函数是用来进行色彩空间转换的)。
另外也可以不用imwrite()函数来存图片数据,可以直接用通用的XML IO接口函数将数据存在XML或者YXML中。

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

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

applyColorMap()

 

 

参考:https://blog.csdn.net/billbliss/article/details/43452173

参考:https://blog.csdn.net/haima1998/article/details/82079042

posted on 2019-05-17 17:01  苏州城外啲微笑  阅读(1901)  评论(0编辑  收藏  举报