OpenCV 学习笔记

  • OpenCV自带颜色表操作
    • 函数
      • colormap(色度图)
      • applyColorMap() 伪彩色函数
    • 代码
      • 显示效果

OpenCV自带颜色表操作

用OpenCV自带颜色表改变图像色彩

函数

  1. colormap(色度图)

OpenCV的定义colormap(色度图),可以应用于灰度图像,使用函数applycolormap产生伪彩色图像。

//定义ColormapTypes 枚举数据类型
enum ColormapTypes
{COLORMAP_AUTUMN = 0, //!< ![autumn](pics/colormaps/colorscale_autumn.jpg)COLORMAP_BONE = 1, //!< ![bone](pics/colormaps/colorscale_bone.jpg)COLORMAP_JET = 2, //!< ![jet](pics/colormaps/colorscale_jet.jpg)COLORMAP_WINTER = 3, //!< ![winter](pics/colormaps/colorscale_winter.jpg)COLORMAP_RAINBOW = 4, //!< ![rainbow](pics/colormaps/colorscale_rainbow.jpg)COLORMAP_OCEAN = 5, //!< ![ocean](pics/colormaps/colorscale_ocean.jpg)COLORMAP_SUMMER = 6, //!< ![summer](pics/colormaps/colorscale_summer.jpg)COLORMAP_SPRING = 7, //!< ![spring](pics/colormaps/colorscale_spring.jpg)COLORMAP_COOL = 8, //!< ![cool](pics/colormaps/colorscale_cool.jpg)COLORMAP_HSV = 9, //!< ![HSV](pics/colormaps/colorscale_hsv.jpg)COLORMAP_PINK = 10, //!< ![pink](pics/colormaps/colorscale_pink.jpg)COLORMAP_HOT = 11, //!< ![hot](pics/colormaps/colorscale_hot.jpg)COLORMAP_PARULA = 12, //!< ![parula](pics/colormaps/colorscale_parula.jpg)COLORMAP_MAGMA = 13, //!< ![magma](pics/colormaps/colorscale_magma.jpg)COLORMAP_INFERNO = 14, //!< ![inferno](pics/colormaps/colorscale_inferno.jpg)COLORMAP_PLASMA = 15, //!< ![plasma](pics/colormaps/colorscale_plasma.jpg)COLORMAP_VIRIDIS = 16, //!< ![viridis](pics/colormaps/colorscale_viridis.jpg)COLORMAP_CIVIDIS = 17, //!< ![cividis](pics/colormaps/colorscale_cividis.jpg)COLORMAP_TWILIGHT = 18, //!< ![twilight](pics/colormaps/colorscale_twilight.jpg)COLORMAP_TWILIGHT_SHIFTED = 19 //!< ![twilight shifted](pics/colormaps/colorscale_twilight_shifted.jpg)
};

引用举例

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,};
  1. applyColorMap() 伪彩色函数

//定义
CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);
参数 说明
src 源图像(灰度图或彩色图(CV_8UC1 or CV_8UC3))
dst 在源图像上进行色彩映射后的结果图像
colormap 提供的色彩图代码值(参见:ColormapTypes 枚举数据类型)

applyColorMap(image,dst,colormap[index%20]);//index%20 保证colorMap里面的参数在colormap[0-19]之间,以方便选择枚举数据类型中的成员

代码

#pragma once#include <opencv2\highgui.hpp>#include <opencv2\imgproc.hpp>using namespace cv;
//定义类
class QuickDemo{public:void colorSpace_Demo(Mat &image);//色彩空间转换函数2021-12-24void mat_creation_demo(Mat &image);//Mat对象与创建2021-12-27void pixel_vist_Demo(Mat &image);//图像像素的读写操作2022-1-3void operators_demo(Mat &image);//图像像素的算数操作2022-1-4void tracking_bar_demo(Mat &image);//滚动条操作演示2022-1-7void key_demo(Mat &image);//键盘响应操作2022-1-12void color_style_demo(Mat &image);//OpenCV自带颜色表操作2022-1-12
};

QuickDemo.cpp

#include <opencv2\highgui.hpp>#include <opencv2\imgproc.hpp>#include<quickopencv.h>#include <iostream>
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,COLORMAP_HSV,};Mat dst;int index = 0;while (true){int c = waitKey(1000);if (c == 27){break;}applyColorMap(image,dst,colormap[index%20]);//index%19 保证colorMap里面的参数在0-18之间index++;imshow("色彩风格", dst);}
}

OpencvTest.cpp

#include <iostream>
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>
#include<quickopencv.h>using namespace cv;
using namespace std;int main()
{Mat scr = imread("...\\image\\1.jpg");//打开一张图if (!scr.data == 1)//判空return -1;namedWindow("窗口1", WINDOW_NORMAL);//创建 WINDOW_FREERATIO窗口imshow("窗口1",scr);//在创建的窗口显示QuickDemo qd;qd.color_style_demo(scr);waitKey(0);return 0;
}

显示效果

20个颜色间隔1秒依次显示,按ESC键退出程序

OpenCV 学习笔记-day9 OpenCV自带颜色表操作(colormap(色度图)ColormapTypes 枚举数据类型与applyColorMap()伪彩色函数)相关推荐

  1. OpenCV学习笔记#002 OpenCV相机检校例程运行

    OpenCV学习笔记#002 OpenCV相机检校例程运行 OpenCV学习笔记#002 OpenCV相机检校例程运行 所需文件 修改文件 修改in_VID5.xml 修改VID5.xml VS 设置 ...

  2. OpenCV学习笔记之OpenCV安装

    一.  Opencv的安装及配置 Qt有两种版本:mingw版本和MSVC版本.1.MSVC是指微软的VC编译器:2.MinGW是指是Minimalist GNU on Windows的缩写.它是一个 ...

  3. C++ OpenCV 自带颜色表操作

    1.API 1.applyColorMap 应用颜色图 共3个参数 第1个参数 输入矩阵 第2个参数 输出矩阵 第3个参数 颜色图(查阅官方文档可知) 2.实例代码 循环转换颜色风格 我们首先把颜色表 ...

  4. Opencv学习笔记之OpenCV介绍

    一.  OpenCV介绍 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 ...

  5. OpenCV学习笔记(12)——OpenCV中的轮廓

    什么是轮廓 找轮廓.绘制轮廓等 1.什么是轮廓 轮廓可看做将连续的点(连着边界)连在一起的曲线,具有相同的颜色和灰度.轮廓在形态分析和物体的检测和识别中很有用. 为了更加准确,要使用二值化图像.在寻找 ...

  6. Opencv学习笔记 - 关于OpenCV的UMat 类

    一个统一的抽象 cv::UMat 允许使用 CPU 或 OpenCL 代码实现相同的 API,而无需显式调用 OpenCL 加速版本.UMat类告诉 OpenCV 函数使用特定于 OpenCL 的代码 ...

  7. Opencv学习笔记(十二):图片腐蚀和膨胀操作

    文章目录 腐蚀 代码 效果 膨胀 代码 效果 开运算/闭运算 代码 腐蚀 原理:是在原图的小区域内取局部最小值.因为是二值化图,只有 0 和 255,所以小区域内有一个是 0 该像素点就为 0: 作用 ...

  8. OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)

    OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...

  9. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  10. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

最新文章

  1. BCH链上交易量翻5倍的背后隐藏着哪些秘密?
  2. 浅析如何让网站建设更具新颖?
  3. python语言程序设计2019版第二章课后答案-python语言程序设计基础课后答案第二章...
  4. C++基本操作符重载
  5. 【转】[Hadoop源码解读](四)MapReduce篇之Counter相关类
  6. .NET Core开发实战(第9课:命令行配置提供程序)--学习笔记
  7. Navicat加载缓慢
  8. Hadoop小文件存储方案
  9. idea提交本地项目到git
  10. 尽善尽美之作《Python Qt GUI与数据可视化编程》
  11. Android中的权限请求
  12. 电工与电子技术基础【2】
  13. google国内镜像网址收集
  14. 【概念】区块链中账本是什么?通用区块链平台账本概念介绍,一个谁都能看懂的账本概念
  15. 苹果计算机快捷键设置在哪里,苹果手机快捷键小方块怎么设置 【设置方法】...
  16. 亚马逊云科技re:Invent现场访谈:医疗健康行业的云上未来
  17. Java基础知识——BIO模式
  18. 名编辑电子杂志大师教程 | 主页按钮
  19. python dataframe dropna_在Python中使用熊猫在两个DataFrame之间进行值...
  20. 翻译软件哪个准确度高

热门文章

  1. ad转3d视图快捷键_AD 常用快捷键
  2. 令人吃惊,这个短信平台在这些方面居然完胜阿里云
  3. Pygame教程系列四:播放音频篇
  4. UmiJS介绍--路由(三)
  5. 编码器控制电机正反转梯形图_旋转编码器如何控制电机正反转?PLC如何实现?
  6. 网络安全学习相关网站
  7. 三星s8清除html查看器,三星Galaxy S8/S8+双清教程_怎么清理数据缓存和恢复出厂设置...
  8. CentOs7下Zabbix安装教程——zabbix server安装
  9. 手把手教会使用YOLOv5训练VOC2007数据集
  10. excel函数:VLOOKUP+IF多条件匹配取值(数组函数)