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表示使用的颜色表标号
支持的颜色表图示如下:
志合者不以山海为远
道乖者不以咫尺为近