三行代码,OpenCV轻松生成19种色彩风格图像

2020-08-01 15:33:42 浏览数 (1)

Hello,大家好,今天给大家分享一个OpenCV中相对冷门的一个知识点,就是如何使用OpenCV中的颜色表,快速实现各种色彩风格的转换,先看下图:

相关知识点解释

我只用了三行代码就完成上述功能(除去第三行),代码如下:

代码语言:javascript复制
1for (int i = 0; i < 19; i  ) {
2    applyColorMap(image, dst, colormap[i]);
3    imwrite(format("D:/%d.jpg", i), dst);
4}

其中colormap是我定义的色彩转换表,这个来自OpenCV本身,OpenCV支持20中色彩风格变换,我定义的colormap变量如下:

代码语言:javascript复制
 1int colormap[]= {
 2    COLORMAP_AUTUMN,
 3    COLORMAP_BONE,
 4    COLORMAP_JET,
 5    COLORMAP_WINTER,
 6    COLORMAP_RAINBOW,
 7    COLORMAP_OCEAN,
 8    COLORMAP_SUMMER,
 9    COLORMAP_SPRING,
10    COLORMAP_COOL,
11    COLORMAP_PINK,
12    COLORMAP_HOT,
13    COLORMAP_PARULA,
14    COLORMAP_MAGMA,
15    COLORMAP_INFERNO,
16    COLORMAP_PLASMA,
17    COLORMAP_VIRIDIS,
18    COLORMAP_CIVIDIS,
19    COLORMAP_TWILIGHT,
20    COLORMAP_TWILIGHT_SHIFTED
21};

函数applyColorMap与参数解释如下:

代码语言:javascript复制
void cv::applyColorMap(            InputArray src,         OutputArray dst,         int colormap)

参数解释如下:

src是输入图像,支持三通道与单通道 dst是调色之后图像 colormap表示使用的颜色表标号

支持的颜色表图示如下:

志合者不以山海为远

道乖者不以咫尺为近

0 人点赞