OpenCV 学习笔记-day9 OpenCV自带颜色表操作(colormap(色度图)ColormapTypes 枚举数据类型与applyColorMap()伪彩色函数)

OpenCV自带颜色表操作

用OpenCV自带颜色表改变图像色彩

OpenCV的定义colormap(色度图),可以应用于灰度图像,使用函数applycolormap产生伪彩色图像。


enum ColormapTypes
{
    COLORMAP_AUTUMN = 0,
    COLORMAP_BONE = 1,
    COLORMAP_JET = 2,
    COLORMAP_WINTER = 3,
    COLORMAP_RAINBOW = 4,
    COLORMAP_OCEAN = 5,
    COLORMAP_SUMMER = 6,
    COLORMAP_SPRING = 7,
    COLORMAP_COOL = 8,
    COLORMAP_HSV = 9,
    COLORMAP_PINK = 10,
    COLORMAP_HOT = 11,
    COLORMAP_PARULA = 12,
    COLORMAP_MAGMA = 13,
    COLORMAP_INFERNO = 14,
    COLORMAP_PLASMA = 15,
    COLORMAP_VIRIDIS = 16,
    COLORMAP_CIVIDIS = 17,
    COLORMAP_TWILIGHT = 18,
    COLORMAP_TWILIGHT_SHIFTED = 19
};

引用举例

int colormap[] = {
        COLORMAP_AUTUMN,
        COLORMAP_BONE,
        COLORMAP_JET,
        COLORMAP_WINTER,
        COLORMAP_RAINBOW,
        COLORMAP_OCEAN,
        COLORMAP_SUMMER,
        COLORMAP_SPRING,
        COLORMAP_COOL,
        COLORMAP_PINK,
        COLORMAP_HOT,
        COLORMAP_PARULA,
        COLORMAP_MAGMA,
        COLORMAP_INFERNO,
        COLORMAP_PLASMA,
        COLORMAP_VIRIDIS,
        COLORMAP_CIVIDIS,
        COLORMAP_TWILIGHT,
        COLORMAP_TWILIGHT_SHIFTED,
    };

CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);

参数说明src源图像(灰度图或彩色图(CV_8UC1 or CV_8UC3))dst在源图像上进行色彩映射后的结果图像colormap提供的色彩图代码值(参见:ColormapTypes 枚举数据类型)

applyColorMap(image,dst,colormap[index%20]);
#pragma once

#include

#include

using namespace cv;

class QuickDemo{
public:
    void colorSpace_Demo(Mat &image);
    void mat_creation_demo(Mat &image);
    void pixel_vist_Demo(Mat &image);
    void operators_demo(Mat &image);
    void tracking_bar_demo(Mat &image);
    void key_demo(Mat &image);
    void color_style_demo(Mat &image);
};

QuickDemo.cpp

#include

#include

#include

#include
void QuickDemo::color_style_demo(Mat &image)
{
    int colormap[] = {
        COLORMAP_AUTUMN,
        COLORMAP_BONE,
        COLORMAP_JET,
        COLORMAP_WINTER,
        COLORMAP_RAINBOW,
        COLORMAP_OCEAN,
        COLORMAP_SUMMER,
        COLORMAP_SPRING,
        COLORMAP_COOL,
        COLORMAP_PINK,
        COLORMAP_HOT,
        COLORMAP_PARULA,
        COLORMAP_MAGMA,
        COLORMAP_INFERNO,
        COLORMAP_PLASMA,
        COLORMAP_VIRIDIS,
        COLORMAP_CIVIDIS,
        COLORMAP_TWILIGHT,
        COLORMAP_TWILIGHT_SHIFTED,
        COLORMAP_HSV,
    };
    Mat dst;
    int index = 0;
    while (true)
    {
        int c = waitKey(1000);
        if (c == 27){
            break;
        }
        applyColorMap(image,dst,colormap[index%20]);
        index++;
        imshow("色彩风格", dst);
    }
}

OpencvTest.cpp

#include
#include
#include
#include

using namespace cv;
using namespace std;

int main()
{
    Mat scr = imread("...\\image\\1.jpg");
    if (!scr.data == 1)
        return -1;
    namedWindow("窗口1", WINDOW_NORMAL);
    imshow("窗口1",scr);
    QuickDemo qd;
    qd.color_style_demo(scr);
    waitKey(0);
    return 0;
}

20个颜色间隔1秒依次显示,按ESC键退出程序

Original: https://blog.csdn.net/qq_44799835/article/details/122535696
Author: 追足梦幻
Title: OpenCV 学习笔记-day9 OpenCV自带颜色表操作(colormap(色度图)ColormapTypes 枚举数据类型与applyColorMap()伪彩色函数)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/704975/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球