当前位置: 首页 > news >正文

OpenCV 自带颜色表实现各种滤镜

一、知识点
1、void applyColorMap(InputArray src, OutputArray dst, int colormap);
  (1)、通过给定的颜色映射表,将灰度图像或伪彩色图像转换为全彩色图像。
  (2)、参数说明:
      src: 源图像,灰度或彩色,类型为CV_8UC1或CV_8UC3。 如果是CV_8UC3,则使用cv::COLOR_BGR2GRAY在内部生成CV_8UC1图像。
      dst: 给源图像做颜色映射后的结果图像。
      colormap: 颜色映射需要的enum类型,具体见(3)。
  (3)、
      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)
          COLORMAP_TURBO = 20, //!< ![turbo](pics/colormaps/colorscale_turbo.jpg)
          COLORMAP_DEEPGREEN = 21  //!< ![deepgreen](pics/colormaps/colorscale_deepgreen.jpg)
      };
  (4)、此功能通常用于增强图像的可视化效果,特别是在处理诸如热图(heatmaps)等数据可视化时非常有用。


二、示例代码: 循环切换各种滤镜

#include <iostream>
#include <opencv2/opencv.hpp>void TestColorMap(cv::Mat & src)
{int i_color_map[] = {cv::COLORMAP_AUTUMN,cv::COLORMAP_BONE,cv::COLORMAP_JET,cv::COLORMAP_WINTER,cv::COLORMAP_RAINBOW,cv::COLORMAP_OCEAN,cv::COLORMAP_SUMMER,cv::COLORMAP_SPRING,cv::COLORMAP_COOL,cv::COLORMAP_HSV,cv::COLORMAP_PINK,cv::COLORMAP_HOT,cv::COLORMAP_PARULA,cv::COLORMAP_MAGMA,cv::COLORMAP_INFERNO,cv::COLORMAP_PLASMA,cv::COLORMAP_VIRIDIS,cv::COLORMAP_CIVIDIS,cv::COLORMAP_TWILIGHT,cv::COLORMAP_TWILIGHT_SHIFTED,cv::COLORMAP_TURBO,cv::COLORMAP_DEEPGREEN};cv::Mat dst;int index = 0;while (true){int c = cv::waitKey(1000);if (c == 27){break;}cv::applyColorMap(src, dst, i_color_map[index % 22]);cv::imshow("颜色风格", dst);index++;}
}int main()
{cv::Mat src = cv::imread("../images/8.png");if (src.empty()){std::cout << "load src image error..." << std::endl;return -1;}cv::imshow("原始图像", src);TestColorMap(src);return 0;
}

http://www.xdnf.cn/news/871363.html

相关文章:

  • 【Netty源码分析总结】
  • 使用 Unstructured 开源库快速入门指南
  • 机器学习:聚类算法
  • Python爬虫:trafilatura 的详细使用(快速提取正文和评论以及结构,转换为 TXT、CSV 和 XML)
  • Day44打卡 @浙大疏锦行
  • 01-Redis介绍与安装
  • pyqt5 安装失败
  • 查看服务应用是否有跑起来命令
  • 机器学习算法分类
  • 3D旋转动态爱心 - Python创意代码
  • MySQL ACID 面试深度解析:原理、实现与面试实战
  • Pytest+Selenium UI自动化测试实战实例
  • MCP:AI应用的通用接口,如何重塑大模型与外部系统的连接?
  • 小米又开源了,一个多模态大模型 + 一个生不逢时的推理大模型
  • CppCon 2015 学习:Bridging Languages Cross-Platform
  • 循环链表与循环队列的区分与对比
  • 防火墙iptables项目实战
  • Java 二维码
  • ROS2性能狂飙:C++11移动语义‘偷梁换柱’实战
  • CSP严格模式返回不存在的爬虫相关文件
  • C#和C++在编译过程中的文件区分
  • 树莓派上遇到插入耳机后显示“无输入设备”问题
  • 格恩朗椭圆齿轮流量计 精准计量 赋能工业
  • 探索花语的奥秘:全新花语网站上线啦!
  • Elasticsearch中的地理空间(Geo)数据类型介绍
  • PostgreSQL配置文件修改及启用方法
  • ubutu修改网关
  • 将多个分段btsnoop文件合并为一个
  • 低空城市场景下的多无人机任务规划与动态协调!CoordField:无人机任务分配的智能协调场
  • HTML转EXE最新版本2.1.0新功能介绍 - 附CSDN免费下载链接