图像颜色空间转换

目录

1.图像颜色空间介绍

RGB 颜色空间

2.HSV 颜色空间

3.RGBA 颜色空间

2.图像数据类型间的互相转换convertTo()

3.不同颜色空间互相转换cvtColor()

 4.Android JNI demo


1.图像颜色空间介绍

  1. RGB 颜色空间

RGB 颜色空间是最常见的颜色表示方式之一,其中 R、G、B 分别表示红色、绿色和蓝色分量。在 OpenCV 中,RGB 图像可以通过 CvType.CV_8UC3 的类型来表示,其中 8U 表示 8 位无符号整数,C3 表示三个通道。

2.HSV 颜色空间

 HSV (Hue, Saturation, Value) 颜色空间是一种将颜色表示为色调、饱和度和亮度三个分量的方式。色调表示颜色的基本色相,取值范围为 0 到 360;饱和度表示颜色的纯度,取值范围为 0 到 1;亮度表示颜色的亮度,取值范围也为 0 到 1。在 OpenCV 中,HSV 图像可以通过 CvType.CV_8UC3 的类型来表示。

3.RGBA 颜色空间

在 RGBA 颜色空间中,每个分量的取值范围为 0 到 255,其中 R、G、B 分别表示红色、绿色和蓝色分量,取值范围为 0-255,而 A 表示透明度分量,取值范围为 0-255,其中 0 表示完全透明,255 表示完全不透明。

2.图像数据类型间的互相转换convertTo()

void cv::Mat::convertTo ( OutputArray m,

int         rtype,

double   alpha,

double   beta ,

)      

  • m:输出图像
  • rtype: 转换后数据类型
  • alpha:缩放系数
  • beta:平移系数

3.不同颜色空间互相转换cvtColor()

void cv::cvtColor ( InputArray  src,

                              OutputArray  dst,

                               int   code,

                               int    dstCn 

  • src:待转换颜色模型的原始图像。
  • dst:转换颜色模型后的目标图像。
  • code: 颜色空间转换的标志,如由RGB空间到HSV空间。
  • dstCn:目标图像中的通道数,如果参数为0,则从src和代码中自动导出通道数。

 4.Android JNI demo


#include <jni.h>#include <string>#include <android/bitmap.h>#include <opencv2/opencv.hpp>#include <iostream>#include <android/log.h>using namespace cv;using namespace std;extern "C"JNIEXPORT void JNICALLJava_com_example_myapplication_MainActivity_opencv_1test(JNIEnv *env, jclass clazz,jobject bitmap) {AndroidBitmapInfo info;void *pixels;CV_Assert(AndroidBitmap_getInfo(env, bitmap, &info) >= 0);//判断图片是位图格式有RGB_565 、RGBA_8888CV_Assert(info.format == ANDROID_BITMAP_FORMAT_RGBA_8888 ||info.format == ANDROID_BITMAP_FORMAT_RGB_565);CV_Assert(AndroidBitmap_lockPixels(env, bitmap, &pixels) >= 0);CV_Assert(pixels);//将bitmap转化为Mat类Mat image(info.height, info.width, CV_8UC4, pixels);Mat image32;image.convertTo(image32,CV_32F,1/255,0);Mat HSV;cvtColor(image,HSV,COLOR_BGR2HSV);Mat gray;cvtColor(image,gray,COLOR_BGR2GRAY);imwrite("/sdcard/DCIM/gray.jpg",gray);//保存图像到手机相册imwrite("/sdcard/DCIM/HSV.jpg",HSV);}

                   

     (原图)                                    (HSV)                                      (gray)

 

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

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

相关文章

SQL注入之报错注入

文章目录 报错注入是什么&#xff1f;报错注入获取cms账号密码成功登录 报错注入是什么&#xff1f; 在注入点的判断过程中&#xff0c;发现数据库中SQL 语句的报错信息&#xff0c;会显示在页面中&#xff0c;因此可以利用报错信息进行注入。 报错注入的原理&#xff0c;就是在…

jwt安全问题

文章目录 jwt安全问题jwt简介jwt组成headerpayloadsignature 潜在漏洞空加密算法web346 密钥爆破web348 敏感信息泄露web349 **修改算法RS256为HS256**web350 jwt安全问题 jwt简介 JWT的全称是Json Web Token&#xff0c;遵循JSON格式&#xff0c;跨域认证解决方案&#xff0…

Vue.js2+Cesium1.103.0 十、加载 Three.js

Vue.js2Cesium1.103.0 十、加载 Three.js Demo ThreeModel.vue <template><divid"three_container"class"three_container"/> </template><script> /* eslint-disable eqeqeq */ /* eslint-disable no-unused-vars */ /* eslint…

unity VS无法进行断点调试

有时候我们的VS无法进行断点调试&#xff0c;报错如下&#xff1a; 原因是&#xff1a;开启了多个项目&#xff0c;vs无法找到调式项目 解决&#xff1a;点击菜单栏--调试----附加unity调试程序 会弹出一个框&#xff0c;然后选择你要调试的项目 即可

Android屏幕显示 android:screenOrientation configChanges 处理配置变更 代码中动态切换横竖屏

显示相关 屏幕朝向 https://developer.android.com/reference/android/content/res/Configuration.html#orientation 具体区别如下&#xff1a; activity.getResources().getConfiguration().orientation获取的是当前设备的实际屏幕方向值&#xff0c;可以动态地根据设备的旋…

vue2使用 vis-network 和 vue-vis-network 插件封装一个公用的关联关系图

效果图&#xff1a; vis组件库&#xff1a;vis.js vis-network中文文档&#xff1a;vis-network 安装组件库&#xff1a; npm install vis-network vue-vis-network 或 yarn add vis-network vue-vis-network 新建RelationGraph.vue文件&#xff1a; <template><…

写用例写的焦头烂额?看看摸鱼5年的老点工是怎么写的...

给你个需求&#xff0c;你要怎么转变成最终的用例&#xff1f; 直接把需求文档翻译一下就完事了。 老点工拿到需求后的标准操作&#xff1a; 第一步&#xff1a;解析需求 先解析需求-找出所有需求中的动词&#xff0c;再列出所有测试点。测试点过程不断发散&#xff0c;对于…

【Linux】centos8安装cmake3.27.4

第一步&#xff0c;去官网下安装包&#xff0c;一定不要下错了 下好了之后&#xff0c;用ftp软件传到云服务器或者虚拟机上&#xff0c;我用的是centos8系统&#xff0c;安装之前先准备好这些依赖项 yum install -y gcc gcc-c make automake yum install -y openssl openssl-…

视频云存储/安防监控视频智能分析网关V3:明烟/明火检测功能详解

智能分析网关系列是基于边缘AI计算技术&#xff0c;可对前端摄像头采集的视频流进行实时检测分析&#xff0c;能对监控画面中的人、车、物进行识别。我们的AI边缘计算网关硬件——智能分析网关目前有5个版本&#xff1a;V1、V2、V3、V4、V5&#xff0c;每个版本都能实现对监控视…

计算机毕设之Python的高校成绩分析(含文档+源码+部署)

本系统阐述的是一个高校成绩分析系统的设计与实现&#xff0c;对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计&#xff0c;描述&#xff0c;实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体架构。…

线上祭奠软件:虚拟纪念与情感表达的新方式

线上祭奠软件作为一种新兴的技术应用&#xff0c;正在改变传统祭奠方式&#xff0c;为人们提供了跨越时空的虚拟纪念和情感表达方式。本文将深入探讨线上祭奠软件的意义、功能与挑战&#xff0c;并思考其对社会和个人的影响。 一、线上祭奠软件的意义&#xff1a; 1.跨…

前端:横向滚动条,拖动进行左右滚动(含隐藏滚动条)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

LeetCode面试经典150题(day 1)

LeetCode是一个免费刷题的一个网站&#xff0c;想要通过笔试的小伙伴可以每天坚持刷两道算法题。 接下来&#xff0c;每天我将更新LeetCode面试经典150题的其中两道算法题&#xff0c;一边巩固自己&#xff0c;一遍希望能帮助到有需要的小伙伴。 88.合并两个有序数组 给你两个…

SQL语法与DDL语句的使用

文章目录 前言一、SQL通用语法二、DDL语句1、DDL功能介绍2、DDL语句对数据库操作&#xff08;1&#xff09;查询所有数据库&#xff08;2&#xff09;查询当前数据库&#xff08;3&#xff09;创建数据库&#xff08;4&#xff09;删除数据库&#xff08;5&#xff09;切换数据…

Windows 桌面运维及安全管理

什么是桌面运维 桌面运维是IT管理的重要部分&#xff0c;是一种系统管理的技术&#xff0c;它的主要目的是通过管理用户、计算机和其他设备来提高组织的效率。它不仅能够降低维护成本&#xff0c;而且还能够提高系统的可用性。 如今随着企业设备越来越丰富&#xff0c;桌面运…

SpringBoot Mybatis 多数据源 MySQL+Oracle

一、背景 在SpringBoot Mybatis 项目中&#xff0c;需要连接 多个数据源&#xff0c;连接多个数据库&#xff0c;需要连接一个MySQL数据库和一个Oracle数据库 二、依赖 pom.xml <dependencies><dependency><groupId>org.springframework.boot</groupId&…

AI 绘画Stable Diffusion 研究(十七)SD lora 详解(上)

大家好&#xff0c;我是风雨无阻。 本期内容&#xff1a; Lora的原理是什么&#xff1f;Lora如何下载安装&#xff1f;Lora如何使用&#xff1f; 大家还记得 AI 绘画Stable Diffusion 研究&#xff08;三&#xff09;sd模型种类介绍及安装使用详解 这篇文章中&#xff0c;曾简…

windows安装Scala

Windows安装Scala 下载地址&#xff1a;https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.zip 解压完成之后 配置环境变量

kafka+Kraft模式集群+安全认证

Kraft模式安全认证 前章内容聊到了Kafka的Kraft集群的配置及使用。本篇再来说说kafka的安全认证方面的配置&#xff0c;。 Kafka提供了多种方式来进行安全认证&#xff0c;包括身份认证、授权和加密传输。一些常用的Kafka安全认证方式&#xff1a; SSL/TLS&#xff1a;使用S…

Docker技术--Docker镜像管理

1.Docker镜像特性 ①.镜像创建容器的特点 Docker在创建容器的时候需要指定镜像,每一个镜像都有唯一的标识:image_id,也可也使用镜像名称和版本号做唯一的标识,如果不指定版本号,那么默认使用的是最新的版本标签(laster)。 ②.镜像分层机制 Docker镜像是分层构建的,并通过…