第九节 Opencv自带颜色表操作
知识点:Look Up lTable(LUT)查找表
了解LUT查找表的作用与用法,代码实现与API介绍
-applyColorMap(src,dst,COLORMAP)
-src表示输入图像
-dst表示输出图像
=匹配到的颜色LUT,Opencv支持13种颜色风格的查找映射
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,
COLORMAP_PINK,
COLORMAP_HOT,
COLORMAP_PARULA,
COLORMAP_MAGMA,
COLORMAP_INFERNO,
COLORMAP_TURBO,
COLORMAP_PLASMA,
COLORMAP_VIRIDIS,
};
Mat dst;
int index = 0;
while (true)
{
int c = waitKey(2000);--等待用户键盘输入,如果在2s没有输入将会输入-1.
if (c == 27)
{
break;
}
applyColorMap(image, dst, colormap[index % 19]);--在opencv中applyColormap函数用于将颜色映射应用于输入图像,image输入单通道灰度图像,dst输出的三通道的彩色图像,colormap【。。。】预先定义的包含多个颜色映射常量的列表和数组,colormap【index%19】规定一直趋于在0-18之间循环;
index++;
imshow("颜色风格", dst);
}
}
image是原始输入图像,它在整个过程中保持不变(除非外部有对它的修改操作)。
程序通过不断变化的index值,结合colormap[index % 19]从一系列预定义的颜色映射中选择一个特定的颜色映射常量。然后通过applyColorMap(image, dst, colormap[index % 19])将输入图像image按照选定的颜色映射进行处理,并将结果输出到dst图像中。
所以可以说是根据不断变化的index(由用户等待时间和键盘输入决定其变化)来从applyColorMap的可用颜色映射中选择对应的颜色映射,并将处理后的结果赋予dst。