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/
转载文章受原作者版权保护。转载请注明原作者出处!