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

news2024/10/7 10:21:14

文章目录

        • 1、applyColorMap()函数的使用:
          • (1)函数原型:
            • void applyColorMap(InputArray src, OutputArray dst, int colormap)
            • void applyColorMap(InputArray src, OutputArray dst, InputArray userColor)
          • (2)示例:
            • 成果展示:

1、applyColorMap()函数的使用:

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

(1)函数原型:
void applyColorMap(InputArray src, OutputArray dst, int colormap)
  • src:源图像,灰度图或彩色图( CV_8UC1 or CV_8UC3 );
  • dst:在源图像上进行色彩映射后的结果图像;
  • colormap:opencv提供的色彩值;
    // opencv提供的色彩值
    int colorMap[] = {
    	COLORMAP_AUTUMN,
    	COLORMAP_BONE,
    	COLORMAP_JET,
    	COLORMAP_WINTER,
    	COLORMAP_RAINBOW,
    	COLORMAP_OCEAN,
    	COLORMAP_SUMMER,
    	COLORMAP_SPRING,
    	COLORMAP_COOL,
    	COLORMAP_HSV,
    	COLORMAP_PINK,
    	COLORMAP_HOT,
    	COLORMAP_PARULA,
    	COLORMAP_MAGMA,
    	COLORMAP_INFERNO,
    	COLORMAP_PLASMA,
    	COLORMAP_VIRIDIS,
    	COLORMAP_CIVIDIS,
    	COLORMAP_TWILIGHT,
    	COLORMAP_TWILIGHT_SHIFTED
    };
    
void applyColorMap(InputArray src, OutputArray dst, InputArray userColor)
  • src:源图像,灰度图或彩色图( CV_8UC1 or CV_8UC3 );
  • dst:在源图像上进行色彩映射后的结果图像;
  • userColor:用户自定义的色彩(CV_8UC1 or CV_8UC3 and size 256);
(2)示例:
// 将灰度图或彩色图转换成opencv提供的20多种色彩值
void QuickDemo::colorStyle(Mat &image) {
	// opencv提供的色彩值
	int colorMap[] = {
		COLORMAP_AUTUMN,
		COLORMAP_BONE,
		COLORMAP_JET,
		COLORMAP_WINTER,
		COLORMAP_RAINBOW,
		COLORMAP_OCEAN,
		COLORMAP_SUMMER,
		COLORMAP_SPRING,
		COLORMAP_COOL,
		COLORMAP_HSV,
		COLORMAP_PINK,
		COLORMAP_HOT,
		COLORMAP_PARULA,
		COLORMAP_MAGMA,
		COLORMAP_INFERNO,
		COLORMAP_PLASMA,
		COLORMAP_VIRIDIS,
		COLORMAP_CIVIDIS,
		COLORMAP_TWILIGHT,
		COLORMAP_TWILIGHT_SHIFTED
	};
	Mat dst;
	int index = 0;
	while (true) {
		int c = waitKey(200);
		if (c == 27) {	// 退出
			break;
		}
		// index%19,index取模之后下标值在 0 - 19 之间循环,下标不会超过19
		applyColorMap(image, dst, colorMap[index%19]);
		index++;
		namedWindow("colorStyle", WINDOW_NORMAL);
		imshow("colorStyle", dst);
	}
}

成果展示:

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP证书为什么可以不用考试就可以获得CSPM二级证书?

一、PMP证书介绍 PMP是指项目管理专业人士(Project Management Professional),是国际上公认的项目管理领域的权威认证。PMP认证由美国项目管理协会(PMI)颁发,是全球范围内最具权威性、最受认可的项目管理专…

Jmeter使用之:怎么编写扩展函数(一)

目录 前言: 1、首先编写我们的java类,如具体代码如下: 2、使用eclipse把java导出成jar包,如timetool.jar。 3、Jmeter 测试计划底部的library找到timetool.jar,导入进去。 4、在Jmeter测试计划下新建线程组&#…

咨询第三方软件测试机构报价时,软件企业应该准备什么?

随着软件行业的快速发展,软件企业也面临着越来越大的市场竞争压力。为了确保软件产品的质量和稳定性,许多企业开始选择外包软件测试服务。然而,在咨询第三方软件测试机构报价之前,软件企业需要做好一些准备工作,以获得…

AI很渴:chatGPT交流一次=喝掉一瓶水,GPT3训练=填满核反应堆

流行的大型语言模型(LLM),如OpenAI的ChatGPT和Google的Bard,耗能巨大,需要庞大的服务器农场提供足够的数据来训练这些强大的程序。对这些数据中心进行冷却也使得AI聊天机器人对水的需求量极大。新的研究表明&#xff0…

小白到运维工程师自学之路 第四十五集 (生产级Redis Cluster部署)

一、概述 Redis Cluster是Redis数据库的一种分布式解决方案,用于在多个节点上分布和 管理数据。它通过将数据分片存储在不同的节点上,实现数据的分布式存储和处理。 Redis Cluster采用主从复制的方式来保证数据的高可用性和容错性,每个主节…

ai绘画二次元软件免费的哪个好?这些二次元ai绘画软件比较好

小伙伴好呀,今天我要和你们分享一个超酷的话题——ai绘画二次元作品!是不是感觉很时髦?没错,现在我们不再局限于传统的绘画方式,而是可以通过ai技术来创造出令人赞叹的二次元世界。你不需要成为一名艺术大师&#xff0…

从文档智能开始洞察一切

文档智能 Document Intelligence 即使在当今数字至上的时代,许多交易仍依赖于发票、合同、法律文件、员工记录、财务报表等纸质文件。当企业希望对纸质记录进行数字化处理,以便搜索、保存和提取有价值的数据以用于决策和市场开拓,AI支持的文…

【教学类-36-05】动物头饰制作2.0(midjounery动物简笔画四图)一页两种动物

作品展示 背景需求: 头饰1.0的教学实践发现,完全可以利用裁剪的边缘纸条作为头饰的套环。因此重新设计word模板,合理布局图案位置,设计了一页2份的头饰。 原来样式:一页一份动物(4个) 现在样式…

16-Linux背景知识

目录 1.Linux是什么? 2.Unix & Linux 发展历程图 3.Linux 发行版 PS:CentOS 和 RedHat 的关系 4.关于 Linux 学习什么? 4.1.基础命令(重点) PS:使用命令相比于使用图形界面的主要好处 4.2.系统编程 &…

IP地址定位在电商行业中的应用

最新数据显示,随着电商行业的快速发展越来越多的企业开始将IP地址定位技术应用于其业务中。IP地址定位是一种利用互联网上的IP地址来确定用户地理位置的技术它通过识别用户的IP地址,从而可以实时追踪和定位他们的位置。 在电商行业中,IP地址定…

Docker 搭建sonarqube,并集成阿里P3C规则

简介 本文安装的sonarqube是7.6-community版本,未安装最新版是因为7.9之后不再支持mysql。如果你安装的是其他版本的sonarqube,那么不要使用插件包中的插件,会有版本兼容性问题。 插件 插件包 插件包中包含java语音插件,汉化插…

linux下postgresql的安装和部署

1.官网下载安装包 PostgreSQL: File Browser 2. 下载成功后上传到Linux服务器 3.解压文件 tar -zxvf postgresql-14.5.tar.gz 4.编译(后边的地址指定的就是安装数据库目录) ./configure --prefix/usr/local/postgresql 出现异常:configure: error: readline lib…

Static Timing Analysis for Nanometer Designs A Practical Approach

分享电子书籍:静态时序分析圣经 Static Timing Analysis for Nanometer Designs A Practical Approach 1 setup time Setup time (建立时间)是数据信号(D)在时钟事件(这里以时钟上升沿为例)发生之前保持稳定的最小时间。以便时钟可靠地对数据进行采样。适用于同步电路,如触…

如何制作3D虚拟人物?这篇文章告诉你

3D虚拟人物制作是一种利用计算机技术来创建并模拟逼真的虚拟角色的过程。随着科技的不断发展和创新,3D虚拟人物制作在影视特效、游戏开发、虚拟主播、辅助医疗等领域得到了广泛应用和重视。 3D虚拟人物制作是一项复杂而精细的工作。它需要具备扎实的绘画基础和美学…

如何组织一次有价值的业务巡检

1.背景 随着业务的快速迭代,开发自测需求与QA测试的需求比例相当,对于开发自测的需求,需求质量我们无法把控,并且随着自测需求的增多,QA对业务的熟悉程度也会出现断层; 部分业务整体已趋于稳定&#xff0c…

如何在Microsoft Excel中使用RANK函数快速计算排名

Excel 中的 RANK 函数是一个内置的统计函数,它返回给定数字数组中数值的秩。根据特定数据点相对于列表中其他值的大小,将等级分配给该数据点。 RANK 的公式是:=RANK(number,ref,[order]),该函数接受两个强制参数 number 和 ref,第三个参数 order 是可选的,其中: number…

JMeter定时器使用小结

目录 前言: 一、定时器的作用域 二、定时器的作用 1、BeanShell定时器(BeanShell Timer) 2、固定吞吐量定时器(Constant Throughput Timer) 3、JSR223定时器(JSR223 Timer) 4、泊松随机定…

python接口自动化(十五)--参数关联接口(详解)

简介 我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务的Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。 …

Vue3 动态组件

父组件 <template><div><h1>动态组件</h1><ul class"ul"><li :class"{ actived: index isactive }" click"changeCur(index)" v-for"(item, index) in list" :key"item.name">{{item…

Elasticsearch(1)——倒排索引与HTTP操作Elasticsearch

文章目录 1 前言2 Elasticsearch 安装3 数据格式4 倒排索引5 常用HTTP请求操作Elasticsearch5.1 创建索引5.2 查询索引信息5.3 删除索引5.4 创建/修改文档5.5查找文档5.6局部修改文档5.7删除文档5.8分页查询 1 前言 Elastic Stack 核心产品包括 Elasticsearch【存储数据】、Ki…