18.java openCV4.x 入门- Imgproc之色彩映射及颜色空间转换

news2024/11/22 23:08:58
专栏简介

💒个人主页
📰专栏目录

点击上方查看更多内容
📖心灵鸡汤📖

我们唯一拥有的就是今天,唯一能把握的也是今天


建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫
🧭文章导航🧭
⬆️ 17.Core之图像连接
⬇️ 19.待更新

Imgproc之色彩映射及颜色空间转换

  • 一、色彩映射
    • 1.字段
    • 2.方法介绍
    • 3.自定义colormap
    • 4.映射原理
  • 二、颜色空间转换
    • 1.方法介绍

一、色彩映射

   applyColorMap用于将灰度图像转换为彩色图像(伪彩色),这有助于增强图像的可视化效果。

1.字段

   列举部分

COLORMAP_RAINBOW 创建一个彩虹色调的颜色映射
COLORMAP_TWILIGHT 创建一个暮光色调的颜色映射
COLORMAP_HOT 创建一个类似热成像的颜色映射

2.方法介绍

applyColorMap​(Mat src, Mat dst, int colormap)
参数:
src 源图像
dst 输出图像
colormap 要应用的colormap。COLORMAP_*
        //读取图像
        Mat mat = Imgcodecs.imread("flip.jpg");
        // 创建输出彩色图像
        Mat dst = new Mat(mat.rows(), mat.cols(), CvType.CV_8UC3);
        // 应用调色板
        Imgproc.applyColorMap(mat, dst,Imgproc.COLORMAP_HOT);
        HighGui.imshow("dst",dst);
        HighGui.waitKey();

结果:
在这里插入图片描述

3.自定义colormap

   除了使用系统预设的colormap,openCV还支持用户自定义colormap

applyColorMap​(Mat src, Mat dst, Mat userColor)
参数:
src 源图像
dst 输出图像
userColor 要应用的colormap,类型为CV_8UC1或CV_8UC3,它是一个大小为256x1的Mat对象,userColor的每个元素表示对应灰度值的颜色,可以通过设置不同的颜色值来实现不同的颜色映射效果 复制代码
        //创建自定义色板
        Mat userColor = new Mat(256, 1, CvType.CV_8UC3);
        //将每个像素值映射为对应的蓝色,不设置,则随机
        for (int i = 0; i < 256; i++) {
            userColor.put(i, 0, new double[]{(double) i, 0,0});
           /* userColor.put(i, 0, new double[]{(double) 0, i,0});
            userColor.put(i, 0, new double[]{(double) 0, 0,i});*/
        }
        Imgproc.applyColorMap(src, dst,userColor);

   在 userColor 矩阵中,共有256行,对应于灰度图像中可能的256个像素值。每一行有三个元素,分别对应于B(蓝)、G(绿)和R(红)通道的强度。
请自行验证结果

4.映射原理

   颜色将根据灰度图像中的像素值进行映射(灰度图像中的像素值直接用作索引来选择相应的颜色)。这种方式相当于线性映射的一种形式,

二、颜色空间转换

  将图像从一种颜色空间转换为另一种颜色空间.

1.方法介绍

cvtColor​(Mat src, Mat dst, int code)
参数:
src 源图像
dst 输出图像
code 颜色空间转换编码。参考Imgproc.COLOR_*
        //读取图像
        Mat mat = Imgcodecs.imread("flip.jpg");

        Mat dst = new Mat();
        Imgproc.cvtColor(mat,dst,Imgproc.COLOR_BGR2GRAY);

        HighGui.imshow("dst",dst);
        HighGui.waitKey();

在这里插入图片描述

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

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

相关文章

kvm虚拟机磁盘镜像加密

一、qcow2的aes加密 低版本的qemu能够支持对qcow2文件进行aes加密的方式&#xff0c;例如对一个已经存在的磁盘文件test.qcow2&#xff0c;可以将其转换为经过加密的qcow2文件。 qemu-img convert -O qcow2 --object secret,idsec0,data123456 -o encryptionon,encrypt.key-s…

为数据穿上安全的外衣——零售电商场景下的数据安全体系建设

在电子商务交易过程中&#xff0c;会涉及大量的个人和财务数据的传输和处理&#xff0c;随着电子商务的发展&#xff0c;数据安全风险也成为一个备受关注的问题。 而跨境电商&#xff0c;属于出海业务&#xff0c;涉及到海外不同国家的政策法规&#xff0c;且数据作为电商的业…

linux安装texlive程序

tex 是文本格式渲染语言&#xff0c; 对数学公式特别友好&#xff0c;所以前沿的科研者基本都要掌握 tex 基本功。Latex 是一款优秀的tex渲染程序&#xff0c;可以直接输出PDF等格式文件。 texlive 是 Latex程序及其周边的一个非常优秀的程序管理包&#xff0c;随着社区的发展…

【InternLM 实战营第二期-笔记4】XTuner 微调个人小助手认知

书生浦语是上海人工智能实验室和商汤科技联合研发的一款大模型,很高兴能参与本次第二期训练营&#xff0c;我也将会通过笔记博客的方式记录学习的过程与遇到的问题&#xff0c;并为代码添加注释&#xff0c;希望可以帮助到你们。 记得点赞哟(๑ゝω╹๑) XTuner 微调个人小助手…

计算机网络之同轴电缆,集线器,网桥,交换机,路由器

ping的过程 两台主机用交叉线连接&#xff0c;通过88.2ping88.3发现底层是先经过广播&#xff0c;通过arp协议&#xff0c;告诉我要找的ip是88.3,然后88.3主机收到后就把自己的mac地址发送回去&#xff0c;同理88.2发现是发给自己的后就进行接收&#xff0c;有了mac地址然后再通…

56、巴利亚多利德大学、马德里卡洛斯三世研究所:EEG-Inception-多时间尺度与空间卷积巧妙交叉堆叠,终达SOTA!

本次讲解一下于2020年发表在IEEE TRANSACTIONS ON NEURAL SYSTEMS AND REHABILITATION ENGINEERING上的专门处理EEG信号的EEG-Inception模型&#xff0c;该模型与EEGNet、EEG-ITNet、EEGNex、EEGFBCNet等模型均是专门处理EEG的SOTA。 我看到有很多同学刚入门&#xff0c;不太会…

C#学习:初始类与名称空间

本节内容&#xff1a; 1.初始类&#xff08;class&#xff09;与名称空间&#xff08;namespace&#xff09; 这个定义过于复杂。 类&#xff08;class&#xff09;构成程序的主体。具体的解释很复杂&#xff0c;要资深开发人才能看的懂&#xff0c;我们先记住这句话。 什么…

视频评论ID提取工具|视频关键词评论批量采集软件

视频评论ID提取工具&#xff1a;批量抓取视频评论 视频评论ID提取工具是一款功能强大的软件&#xff0c;可以帮助您批量抓取视频视频下的评论信息。通过输入关键词和评论监控词&#xff0c;即可进行评论的抓取&#xff0c;并提供评论昵称、评论日期、评论内容、命中关键词以及所…

【Qt】:对话框(一)

对话框 一.基本的对话框二.自定义对话框三.通过图形化界面自定义对话框四.关于对话框mode 对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者…

腾讯云人脸服务开通详解:快速部署,畅享智能体验

请注意&#xff0c;在使用人脸识别服务时&#xff0c;需要确保遵守相关的法律法规和政策规定&#xff0c;保护用户的合法权益&#xff0c;并依法收集、使用、存储用户信息。此外&#xff0c;腾讯云每个月会提供一定次数的人脸识别调用机会&#xff0c;对于一般的小系统登录来说…

[StartingPoint][Tier2]Included

LXD https://www.hackingarticles.in/lxd-privilege-escalation/ Task 1 What service is running on the target machine over UDP? &#xff08;目标机器上通过UDP运行的服务是什么&#xff1f;&#xff09; $ nmap -sU 10.129.232.86 -p 69 tftp Task 2 What class o…

C++:构造函数、析构函数、拷贝构造函数

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《C&#xff1a;构造函数、析构函数、拷贝构造函数》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞…

Flutter中间镂空的二维码扫描控件

1、UI效果图&#xff1a; 2、中间镂空UI&#xff1a; class CenterTransparentMask extends CustomClipper<Path> {final double? width;CenterTransparentMask({this.width});overridePath getClip(Size size) {final path Path()..addRect(Rect.fromLTWH(0, 0, size…

K8s 部署 elasticsearch-7.14.0 集群 及 kibana 客户端

一、K8s 部署 elasticsearch-7.14.0 集群 安装规划 组件replicas类型es3StatefulSetkibana1Deployment 使用 k8s 版本为&#xff1a;v1.18.0 。 本次使用 OpenEBS 来作为存储引擎&#xff0c;OpenEBS 是一个开源的、可扩展的存储平台&#xff0c;它提供了一种简单的方式来创…

外贸公司应该怎么选择企业邮箱?哪个企业邮箱最好?

外贸公司业务的特殊性需要他们频繁进行跨国的沟通交流&#xff0c;那么外贸公司应该如何选择适合的企业邮箱呢&#xff1f;首先&#xff0c;传输邮件的稳定安全是前提&#xff0c;另外由于沟通多是国外客户&#xff0c;邮件的翻译也成为外贸公司企业邮箱的刚需。小编今天就详细…

linux——Bash特性

bash是一个命令解释器&#xff0c;其支持命令行展开&#xff5b;&#xff5d;写法 alias是命令别称&#xff0c;即为命令等同于&#xff0c;使用unalias对应命令可以取消该别称 alias可以对命令进行更改

Docker+Uwsgi+Nginx部署Django项目保姆式教程

之前&#xff0c;我和大家分享了在docker中使用uwsgi部署django项目的教程。这次&#xff0c;为大家带来的是使用DockerUwsgiNginx部署Django项目。废话不多说&#xff0c;我们开干。 步骤1&#xff1a;使用命令创建一个django项目 我这里python版本使用的是3.9.x 首先&#…

HarmonyOS实战开发-自定义分享

介绍 自定义分享主要是发送方将文本&#xff0c;链接&#xff0c;图片三种类型分享给三方应用,同时能够在三方应用中展示。本示例使用数据请求 实现网络资源的获取&#xff0c;使用屏幕截屏 实现屏幕的截取&#xff0c;使用文件管理 实现对文件&#xff0c;文件目录的管理&…

【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 一、面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步…