opencv-自带的颜色表操作
API如下:
applyColorMap(src, dst, COLORMAP)
参数1:src表示输入图像
参数2:dst表示输出图像
参数3:匹配到的颜色LUT,OpenCV支持20种颜色风格的查找表映射
如下有这么多种:
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
};
上图,上运行图
上核心代码,Opencv颜色变化代码
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
};
Mat dst;
int index = 0;
while (true)
{
int c = waitKey(1000);
if (c == 27)
{
break;
}
//按下1进行切换
if (c == 49)
{
applyColorMap(image, dst, colormap[index % 19]);//灰度图像也可以变成伪彩色
index++;
imshow("颜色风格", dst);
}
//按下2进行什么?你自己调用API
if (c == 50)
{
}
//自动更简单,把if去掉就OK了
}
}
避免忘记,记录好代码界面