假如我们想在图片上显示不同区域的温度,我们可以把红外图像上的温度数据叠加为灰度图像,暗的区域代表冷的温度,更明亮的区域代表较热的温度,但是这样的呈现不能给人类视觉带来直觉的感受,不能更好地感知颜色的变化。如果我们用不同的颜色代表不同的温度,比如用蓝色表示冷的温度,红的表示热的温度,能够带来更好的感知。为了更好地展示数据,我们把数据转换为彩色数据来实现可视化,用伪彩色更好地显示温度、压力、湿度等数据。

OpenCV提供了伪彩色函数applyColorMap来实现伪彩色功能。

原型1

CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap);

功能

把给定的图像转换为伪彩色图像。

参数释义:

  • 参数1 src 输入源图像,灰度图或者CV_8UC1、CV_8UC3类型的图。

  • 参数2 dst 转换后的伪彩色图,注意:dst调用了Mat::create

  • 参数3 colormap 伪彩色图像类型 参考ColormapTypes

原型2

CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, InputArray userColor);

功能

把给定的图像转换为伪彩色图像。

参数释义:

  • 参数1 src 输入源图像,灰度图或者CV_8UC1、CV_8UC3类型的图。

  • 参数2 dst 转换后的伪彩色图,注意:dst调用了Mat::create

  • 参数3 userColor 用户定义的类型,适用于类型:CV_8UC1 或者 CV_8UC3并且大小为256

示例源码

#include <iostream>
#include <opencv2/opencv.hpp>
​
int main() {cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");cv::Mat imageMapAutum;cv::Mat imageMapBone;cv::Mat imageMapJet;cv::Mat imageMapCIVIDIS;cv::Mat imageMapCOOL;cv::Mat imageMapDEEPGREEN;cv::Mat imageMapHOT;cv::Mat imageMapHSV;cv::Mat imageMapINFERNO;cv::Mat imageMapMAGMA;cv::Mat imageMapOCEAN;cv::Mat imageMapPARULA;cv::Mat imageMapPINK;cv::Mat imageMapPLASMA;cv::Mat imageMapRAINBOW;cv::Mat imageMapSPRING;cv::Mat imageMapSUMMER;cv::Mat imageMapTURBO;cv::Mat imageMapTWILIGHT;cv::Mat imageMapTWILIGHT_SHIFTED;cv::Mat imageMapVIRIDIS;cv::Mat imageMapWINTER;
​cv::applyColorMap(image, imageMapAutum, cv::COLORMAP_AUTUMN);cv::applyColorMap(image, imageMapBone, cv::COLORMAP_BONE);
​cv::applyColorMap(image, imageMapJet, cv::COLORMAP_JET);cv::applyColorMap(image, imageMapCIVIDIS, cv::COLORMAP_CIVIDIS);cv::applyColorMap(image, imageMapCOOL, cv::COLORMAP_COOL);cv::applyColorMap(image, imageMapDEEPGREEN, cv::COLORMAP_DEEPGREEN);cv::applyColorMap(image, imageMapHOT, cv::COLORMAP_HOT);cv::applyColorMap(image, imageMapHSV, cv::COLORMAP_HSV);cv::applyColorMap(image, imageMapINFERNO, cv::COLORMAP_INFERNO);cv::applyColorMap(image, imageMapMAGMA, cv::COLORMAP_MAGMA);cv::applyColorMap(image, imageMapOCEAN, cv::COLORMAP_OCEAN);cv::applyColorMap(image, imageMapPARULA, cv::COLORMAP_PARULA);cv::applyColorMap(image, imageMapPINK, cv::COLORMAP_PINK);cv::applyColorMap(image, imageMapPLASMA, cv::COLORMAP_PLASMA);cv::applyColorMap(image, imageMapRAINBOW, cv::COLORMAP_RAINBOW);cv::applyColorMap(image, imageMapSPRING, cv::COLORMAP_SPRING);cv::applyColorMap(image, imageMapSUMMER, cv::COLORMAP_SUMMER);cv::applyColorMap(image, imageMapTURBO, cv::COLORMAP_TURBO);cv::applyColorMap(image, imageMapTWILIGHT, cv::COLORMAP_TWILIGHT);cv::applyColorMap(image, imageMapTWILIGHT_SHIFTED, cv::COLORMAP_TWILIGHT_SHIFTED);cv::applyColorMap(image, imageMapVIRIDIS, cv::COLORMAP_VIRIDIS);cv::applyColorMap(image, imageMapWINTER, cv::COLORMAP_WINTER);​cv::imshow("image", image);cv::imshow("Autum", imageMapAutum);cv::imshow("Bone", imageMapBone);cv::imshow("Jet", imageMapJet);cv::imshow("CIVIDIS", imageMapCIVIDIS);cv::imshow("COOL", imageMapCOOL);cv::imshow("DEEPGREEN", imageMapDEEPGREEN);cv::imshow("HOT", imageMapHOT);cv::imshow("HSV", imageMapHSV);cv::imshow("INFERNO", imageMapINFERNO);cv::imshow("MAGMA", imageMapMAGMA);cv::imshow("OCEAN", imageMapOCEAN);cv::imshow("PARULA", imageMapPARULA);cv::imshow("PINK", imageMapPINK);cv::imshow("PLASMA", imageMapPLASMA);cv::imshow("RAINBOW", imageMapRAINBOW);cv::imshow("SPRING", imageMapSPRING);cv::imshow("SUMMER", imageMapSUMMER);cv::imshow("TURBO", imageMapTURBO);cv::imshow("TWILIGHT", imageMapTWILIGHT);cv::imshow("TWILIGHT_SHIFTED", imageMapTWILIGHT_SHIFTED);cv::imshow("VIRIDIS", imageMapVIRIDIS);cv::imshow("WINTER", imageMapWINTER);std::cout << "";
​cv::waitKey(0);
}

运行结果如下图所示,效果供各位参考使用:

参考

ColormapTypes枚举定义

OpenCV伪彩色applyColorMap函数相关推荐

  1. opencv中伪彩色applyColorMap函数(C++ / Python)

    opencv中伪彩色applyColorMap函数(C++ / Python) 翻译 2017年06月23日 15:34:12 标签: 1654

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

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

  3. OpenCV applyColorMap函数实现False color伪色彩的实例(附完整代码)

    OpenCV applyColorMap函数实现False color伪色彩的实例 OpenCV applyColorMap函数实现False color伪色彩的实例 OpenCV applyColo ...

  4. OpenCV4使用applyColorMap()函数,可以将灰度图或彩色图转换成自定义的彩色图,或opencv提供的20多种色彩值

    文章目录 1.applyColorMap()函数的使用: (1)函数原型: void applyColorMap(InputArray src, OutputArray dst, int colorm ...

  5. 图像边缘检测--OpenCV之cvCanny函数

    图像边缘检测--OpenCV之cvCanny函数 分类: C/C++ void cvCanny( const CvArr* image, CvArr* edges, double threshold1 ...

  6. OpenCV中initUndistortRectifyMap函数存在bug原因探究

    原文首发于公众号「3D视觉工坊」:OpenCV中initUndistortRectifyMap函数存在bug原因探究. 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下: # ...

  7. 利用OpenCV的compareHist函数作直方图的相似度对比的源程序

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 OpenCV的compareHist函数用来计算 ...

  8. 转载:opencv中imshow函数运行中断的解决办法

    OpenCV中 imshow函数运行中断的解决方法 羊和咩咩 2017-03-10 16:00:49 5919 收藏 最后发布:2017-03-10 16:00:49首发:2017-03-10 16: ...

  9. OpenCV使用filter2D函数填充线性滤波器的实例(附完整代码)

    OpenCV使用filter2D函数填充线性滤波器的实例 OpenCV使用filter2D函数填充线性滤波器的实例 OpenCV使用filter2D函数填充线性滤波器的实例 #include &quo ...

最新文章

  1. 张一鸣的微博世界-产品篇一
  2. topcoder srm 330 div1
  3. ImportError: Could not import backend for traitsui. Make sure you have a suitable UI toolkit like
  4. MasterPage,Page 2者之间事件的执行顺序
  5. android wlan0 网卡过程,android WIFI网络驱动之wpa_supplicant程序详解
  6. 如何添加Samba用户
  7. java 登录 https_java – 如何在Web应用程序中实现HTTPS登录页面?
  8. Jmeter使用SSL(HTTPS协议)
  9. Git学习笔记:一台电脑上配置两个git账户
  10. 初级第二课——统计总分
  11. [Tizen开发]SDB调试工具使用简介
  12. 编程新手导论(转载)
  13. android 怎么看架构,怎么查看手机设备架构
  14. Linux双网卡绑定bond0(单IP)
  15. canvas实现粒子特效
  16. WEB安全全基础漏洞学习
  17. 图像处理保研面试_详解保研面试的那些事
  18. 【深入理解TcaplusDB技术】入门Tcaplus-JDBC开发
  19. 【译文】利用STAN做贝叶斯回归分析:Part 1 正态回归
  20. codewarrior 入门(来源于逍遥呤博客)

热门文章

  1. boost::mp11::mp_is_list相关用法的测试程序
  2. boost::gil::bit_aligned_pixel_reference用法的测试程序
  3. GDCM:gdcm::Validate的测试程序
  4. Boost:Porthopper服务测试程序
  5. ITK:使用GMM EM分配像素
  6. DCMTK:OFStandard类中的double / ascii转换方法的测试代码
  7. VTK:PolyData之Stripper
  8. VTK:Points之FitImplicitFunction
  9. VTK:图片之InteractWithImage
  10. OpenCV导出模板参数文件