首页 > 其他分享 > 09 OpenCV自带颜色表操作

09 OpenCV自带颜色表操作

时间:2023-01-12 17:12:57浏览次数:58  
标签:颜色 COLORMAP image 09 OpenCV DEEPGREEN 自带 dst Mat

09 OpenCV自带颜色表操作

opencv知识点:

  • opencv4的颜色表
  • 应用图像映射 - applyColorMap()

本科所解决的问题:

  • 如何使用OpenCV中的颜色表?
  • 如何循环转换各种颜色风格?

1.Opencv4的[颜色表

opencv提供22种颜色风格的查找表映射,官方文档查阅ColormapTypes即可

2.颜色表的使用

在使用的时候要用到applyColorMap,传入对应colormap,就可以进行颜色风格的转换

applyColorMap
	应用颜色图
		共3个参数 
			第1个参数 输入
			第2个参数 输出
			第3个参数 颜色图(查阅官方文档可知)

如我们传入COLORMAP_DEEPGREEN,就会有如下效果

重点程序部分

void QuickDemo::color_style_demo(Mat& image) {

	Mat dst;

	applyColorMap(image, dst, COLORMAP_DEEPGREEN);
	imshow("COLORMAP_DEEPGREEN", dst);
}

e10af3482b8dec0c4fddee33af5e39a

完整程序

main.cpp

#include "opencv2/opencv.hpp"
#include "quickopencv.h"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src = imread("C:/Users/LZQ/Desktop/lena.png"); //  B, G, R
	if (src.empty()) {
		printf("could not load image....\n");
		return -1;
	}

	imshow("输入窗口", src);
	QuickDemo qd;
	qd.color_style_demo(src);

	waitKey(0);
	destroyAllWindows();
	return 0;
}

quickdemo.cpp

#include "quickopencv.h"
#include <opencv2/dnn.hpp>

using namespace cv;
using namespace std;
void QuickDemo::color_style_demo(Mat& image) {

	Mat dst;

	applyColorMap(image, dst, COLORMAP_DEEPGREEN);
	imshow("COLORMAP_DEEPGREEN", dst);
}

quickopencv.h

#pragma once
#include <opencv2/opencv.hpp>
using namespace cv;

class QuickDemo {            //快速的演示文件 class类
public:

	void color_style_demo(Mat& image);  //09

};

e10af3482b8dec0c4fddee33af5e39a

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]);

		index++;
		imshow("22种颜色风格",dst);
	}
}

标签:颜色,COLORMAP,image,09,OpenCV,DEEPGREEN,自带,dst,Mat
From: https://www.cnblogs.com/L707/p/17047206.html

相关文章

  • 使用Android 调试桥(ADB)卸载手机自带软件
    今天忍受不了手机自带的应用商店广告过多,打算卸载了,结果在应用管理页面中这个软件没有卸载按钮,后面查找了可以使用ADB命令行卸载,这里做一些简单记录。1.准备1.1硬件准......
  • 【树莓派+arduino+opencv】实现小车无人驾驶-思路汇总
    搭建小车(硬件)电源(12.8V电压)18650电池(三块)+LM2596SDC-CD稳压降压模块驱动TT电机+TB6612FNG驱动模块蓝牙小车连接HC-06上位机连接HC-05(USB转TLL)通过“串口......
  • 每日食词—day095
    separateline单独成行、分行balloonn. v. adj.气球、吹气球、气囊激增、膨胀、鼓起来collapsev. n.塌缩、重叠、折叠、隐缩、破裂、崩溃、倒塌、坍塌、塌......
  • Opencv调用深度学习模型
    2018年04月13日15:19:54 TiRan_Yang 阅读数:1150更多个人分类: TensorFlowPython深度学习 OpenCv从V3.3版本开始支持调用深度学习模型,例如Caffe,Te......
  • 图像识别四大图像库比较:OpenCV/FreeImage/CImg/CxImage
    OpenCV功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法,然后将图像格式和矩阵......
  • Python下opencv使用笔记(图像频域滤波与傅里叶变换)
    前面曾经介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这种方法直接对图像空间操作,操作简单,所以也是空间域滤波。频域滤波说到底最终......
  • OpenCV入门教程,超详细OpenCV入门教程!10小时让你轻松掌握opencv的使用
    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和macOS操作系统上。它轻量级而且高效——由一系列C函数和少量......
  • 剑指 Offer 09. 用两个栈实现队列
    剑指Offer09.用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数......
  • STM32自带GB2312字库显示汉字
      本文介绍如何把字库文件写入单片机的flash中,然后无需再提取字模,即可实现单片机显示中文字符的功能。下载字库到单片机flash中的指定位置  在​​上一篇博客​​中,最后......
  • Windows10自带微软输入法不显示选字栏
    Windows10自带微软输入法不显示选字栏直接5秒内解决首先win+e然后ctrl+shift+Esc找到Windows资源管理器,右键重新启动就可以了同样任务栏假死也可以通过此方法解决......