在图像处理的过程中,我们通常会遇到将灰度图像映射成彩色图像的情形(即通常所说的伪彩映射),OpenCV2和OpenCV3中均提供了两个用于伪彩映射的函数——cv::applyColorMap()和cv::LUT()。

1、cv::applyColorMap()

cv::applyColorMap()是使用opencv预定义的colormap,将灰度图映射成彩色图像。opencv中提供了12个预定义的colormaps,如下图所示

想要获得更多colormap请查看Python中的彩色映射 和 Python中的彩色映射(续篇)。

具体使用如下:

 cv::Mat im_gray = imread("pluto.jpg", cv::IMREAD_GRAYSCALE);cv::Mat im_color;cv::applyColorMap(im_gray, im_color, cv::COLORMAP_JET);

效果如下:

2、cv::LUT()

虽然cv::applyColorMap()用起来很方便,但是无法支持用户自定义的colormap,而这就需要使用cv::LUT()。

首先是colormap的定义:以256级灰阶为例,所谓colormap就是就是灰度级0-255之间256种色彩的映射表。

cv::LUT()具体使用方法如下:

 cv::Mat image_gray_3c;//单通道的灰度图,转换成R、G、B三通道值均相等的三通道图cv::cvtColor(image_gray, image_gray_3c, cv::COLOR_GRAY2RGB);//opencv默认的颜色排列顺序是BGR,而这里自定义的colormap的顺序是RGBcv::cvtColor(golden_map, golden_map, cv::COLOR_BGR2RGB); cv::Mat image_color;cv::LUT(image_gray_3c, golden_map, image_color);

注意:输入的灰度图,一定要先转换成3通道图(即24位深)。这里,使用了自己定义的一个colormap,效果如下:

2017.03.31

【OpenCV3】彩色映射——cv::applyColorMap()与cv::LUT()详解相关推荐

  1. P2P端口映射 UPnP设置功能和使用详解

    P2P端口映射 UPnP设置功能和使用详解     在网上看了很多关于如何打开UPnP功能的文章,发现竟然没有一篇文章能把整个UPnP的设置过程介绍全的,都是只讲到一部分.所以决定写篇文章,至少把设置 ...

  2. 【OpenCV3】cv::Mat类成员函数详解

    cv::Mat为OpenCV2和OpenCV3中最重要的类,可以毫不夸张得说,掌握了cv::Mat的操作,就掌握了OpenCV大半,这里将详细的介绍下cv::Mat类的成员函数及其使用. 1.clon ...

  3. 【OpenCV3】级联分类器训练——traincascade快速使用详解

    上一篇(OpenCV3中的级联分类器目标检测--cv::CascadeClassifier简介)介绍了如何使用级联分类器进行目标检测.这里,我们介绍一下如何训练自己的级联分类器. 至于原理这里就不再进 ...

  4. OpenCV3学习(9.2)连通域分析函数详解connectedComponents()和connectedComponentsWithStats()

    在OpenCV 3中提供了两个很好的函数,在OpenCV 2中没有. (1)connectedComponents() (2)connectedComponentsWithStats() 对应的官方文 ...

  5. 【OpenCV3】cvRound()、cvFloor()、cvCeil()函数详解

    函数cvRound().cvFloor().cvCeil()都是按照一种舍入方式将浮点型数据转换为整型数据. cvRound():返回跟参数最接近的整数值,即四舍五入: cvFloor()  :返回不 ...

  6. 主键由数据库mysql 映射native_Hibernate主键生成策略详解

    转载自:http://blog.csdn.net/wanghuan203/article/details/7562395 hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定 ...

  7. FPGA基础之LUT详解

    查找表(LUT) 对于一个有n输入的逻辑运算,则最终有2n个不同的组合方式.为了便于理解,下面给出一个例子: 上面是一个2输入的例子,该例子对应的组合逻辑电路如下: 该组合逻辑的真值表: 如果使用传统 ...

  8. springboot实体映射到数据库_SpringBoot 操作 ElasticSearch 详解

    点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 本文来源:http://www.mydlq.club/article/64/ 一.ElasticSearch 简介 . 1 ...

  9. python opencv cv.applyColorMap()函数(颜色映射)ColormapTypes【将Intel Realsense D435深度图的黑白图映射为彩色图】

    文章目录 API ColormapTypes 完整应用代码[将深度图的黑白图映射为彩色图] map原理 能否map CV_24UC3的? API def applyColorMap(src, colo ...

最新文章

  1. rrdtool 修改水印logo
  2. Pytorch自定义Loss
  3. Java利用Jakson实现序列化与反序列化操作
  4. linux目录树(书本上看到)
  5. Unity 5.x 游戏开发指南 HD版 final.pdf
  6. jQuery form表单的serialize()参数和其他参数 如何一起传给后端
  7. Proxmark3 Easy Gui 4.0 5.0 5.1加强版免费获取啦
  8. 火狐浏览器添加New Tab插件
  9. Salesforce LWC学习(二) helloWorld程序在VSCode中的实现
  10. linux上编译sdl,Linux下安装、编译SDL
  11. win10总是2分钟就自动睡眠怎么办 win10系统自动休眠bug怎么解决(转)
  12. 主进程和子进程_Python - 进程-线程-协程
  13. WINDOWS网络编程接口
  14. mysql动态脱敏查询_数据库动态脱敏
  15. 中兴 F607 光猫超级管理用户查看
  16. 计算机丢失dll文件怎么弄,电脑开机提示dll文件丢失怎么办?
  17. 【转】SD和SDHC和SDXC卡的区别
  18. php网易云歌曲获取,网易云音乐cookie获取
  19. 爆火GitHub 的十大最火 Python 项目,三天收藏突破10w+
  20. 她力量系列四丨读博6年两次换导师,靠一点点“倔”,俞舟成为social chatbot的开拓者之一

热门文章

  1. 实战并发编程 - 02解决并发问题常用套路
  2. 计网 - TCP 实战:如何进行 TCP 抓包调试?
  3. 深入理解分布式技术 - Dubbo vs Spring Cloud
  4. Java 8 - 07 复合 Lambda 表达式
  5. pdb连接数_Oracle 19c 之多租户 PDB 连接与访问(三)
  6. 浏览器获取设备信息_过滤获取日志和浏览器信息
  7. arr.sort的排序原理
  8. 使用 webpack 4 和 Babel 构建 React 应用(2018)
  9. java邮件发送api文件,JavaMail API 发送一个HTML电子邮件
  10. linux jdk1.4 安装,linux安装jdk1.4.2