个人资料,仅供学习使用
修改时间——2022年1月21日 22:54:13
学习课程:OpenCV4 C++ 快速入门视频30讲
视频老师:贾志刚
09 Opencv自带颜色表操作
opencv知识点:
- opencv4的颜色表
- applyColorMap - 应用图像映射
本科所解决的问题:
- 如何使用OpenCV中的颜色表?
- 如何循环转换各种颜色风格?
1.Opencv4的颜色表
截止到2022年1月21日 23:17:24
opencv提供22种颜色风格的查找表映射
2.颜色表的使用
在使用的时候要用到applyColorMap,传入对应的colormap,就可以进行颜色风格的转换
applyColorMap(image, dst, COLORMAP_DEEPGREEN);
如我们传入COLORMAP_DEEPGREEN
,就会有如下效果
3.循环转换颜色风格
我们首先把颜色表做成一个枚举数组
int colormap[]= {
COLORMAP_AUTUMN,
COLORMAP_BONE,
COLORMAP_JET,
COLORMAP_WINTER,
COLORMAP_RAINBOW,
COLORMAP_OCEAN,
COLORMAP_SUMMER,
COLORMAP_SPRING,
COLORMAP_COOL,
COLORMAP_HSV,//10
COLORMAP_PINK,
COLORMAP_HOT,
COLORMAP_PARULA,
COLORMAP_MAGMA,
COLORMAP_INFERNO,
COLORMAP_PLASMA,
COLORMAP_VIRIDIS,
COLORMAP_CIVIDIS,
COLORMAP_TWILIGHT,
COLORMAP_TWILIGHT_SHIFTED,//20
COLORMAP_TURBO,
COLORMAP_DEEPGREEN
};
通过applyColorMap + 1个while循环,我们便可以实现颜色风格的循环转换
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_HSV,//10
COLORMAP_PINK,
COLORMAP_HOT,
COLORMAP_PARULA,
COLORMAP_MAGMA,
COLORMAP_INFERNO,
COLORMAP_PLASMA,
COLORMAP_VIRIDIS,
COLORMAP_CIVIDIS,
COLORMAP_TWILIGHT,
COLORMAP_TWILIGHT_SHIFTED,//20
COLORMAP_TURBO,
COLORMAP_DEEPGREEN
};
Mat dst;
int index = 0;
while (true) {
int c = waitKey(500);
if (c == 27) {//退出
break;
}
applyColorMap(image, dst, colormap[index % 22]);
/*
applyColorMap
应用颜色表
共3个参数
第1个参数 输入
第2个参数 输出
第3个参数 选择的颜色图(可以用opencv自带的,也可以自己规定)
*/
index++;
imshow("22种颜色风格",dst);
}
}
本课所用API查阅
1.applyColorMap