Android基于opencv实现多通道分离与合并
作者:易冬 发布时间:2022-05-04 09:49:29
标签:Android,opencv,多通道分离与合并
目录
多通道分离
API
操作
通道合并
API
操作
结果
源码
多通道分离
API
public static void split(Mat m, List<Mat> mv)
参数一:m,待分离的多通道图像
参数二:mv,分离后的单通道图像
操作
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_channel_split_merge)
mBgr = Utils.loadResource(this, R.drawable.test)
val imgList = mutableListOf<Mat>()
Core.split(mBgr, imgList)
mChannelB = imgList[0]
mChannelG = imgList[1]
mChannelR = imgList[2]
}
通道合并
API
public static void merge(List<Mat> mv, Mat dst)
参数一:mv,需要合并的图像数组,其中每个图像必须拥有相同的尺寸和数据类型
参数二:dst,合并后输出的图像,与mv[0]具有相同的尺寸和数据类型,通道数等于所有输入图像的通道数总和
操作
private fun showBGZero() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(zero)
list.add(zero)
list.add(mChannelR)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
private fun showBRZero() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(zero)
list.add(mChannelG)
list.add(zero)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
private fun showGRZero() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(mChannelB)
list.add(zero)
list.add(zero)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
private fun showSwitchBR() {
val zero = Mat.zeros(mBgr.rows(), mBgr.cols(), CvType.CV_8UC1)
val list = mutableListOf<Mat>()
list.add(mChannelR)
list.add(mChannelG)
list.add(mChannelB)
val result = Mat()
Core.merge(list, result)
showMat(result)
result.release()
}
结果
源码
github.com/onlyloveyd/…
来源:https://juejin.cn/post/6873982596217307143
0
投稿
猜你喜欢
- 概述状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成独立的类,并将动作委托到 代表当前状态的对
- 本文实例讲述了Android编程实现自动检测版本及自动升级的方法。分享给大家供大家参考,具体如下:步骤:1.检测当前版本的信息Android
- 发现问题在C#连接SQL Server时,明明添加了引用using System.Data.SqlClient;却出现了下面这种情况:原因:
- 1.更新MAC地址 将注册表中的键值添加上MAC地址2.重新连接网络 试过了3个方法: Ma
- 1、反射的概念1、概念反射,指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对任意一个对象,都能调用它的任意一个方法。这种
- 背景最近引入了 Nacos Config 配置管理能力,说起来用法很简单,还是踩了三个坑。Nacos Config 的 nacos 的帐号密
- 代码如下:import java.io.BufferedReader;import java.io.DataOutputStream;imp
- 1. 基础知识集合Java.util包下的常用子类,集合无非就是各种数据结构的应用。集合存在的目的就是为了将数据高效的进行读写,无论哪种具体
- 一、原文翻译WorkManager API 可以很容易的指定可延迟的异步任务。允许你创建任务,并把它交给WorkManager来立即运行或在
- spring-AOP 及 AOP获取request各项参数AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事
- 简介过滤器是AOP(面向切面编程)思想的具体实现。可以过滤浏览器发出的请求,并且决定放行请求还是中断请求。在浏览器对服务器发起请求或者服务器
- 导语相信大家无论是做前端还是做后端的,都被接口接口文档所折磨过,前端抱怨接口文档和后端给的不一致,后端抱怨写接口文档很麻烦,所以Swagge
- 算法描述堆排序算法的描述如下:将待排序的数组调整为最大堆,此时未排序的长度 N 为数组的长度,调整的过程就是倒序将数组的
- 话不多说,请看代码:<!DOCTYPE html><html><head> <meta
- 通过下面一张图看下要实现的功能,具体详情如下所示:现在我就来介绍些软件的其它功能。希望大家有所受益。模拟人为搜索商品在刷单的时候,不能直接拿
- 一、项目运行环境配置:Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe
- 本文实例为大家分享了java绘制五子棋棋盘的具体代码,供大家参考,具体内容如下源码:import javax.imageio.ImageIO
- 一、前言近期一项目A需实现数据同步到另一项目B数据库中,在不改变B项目的情况下,只好选择项目A中切换数据源,直接把数据写入项目B的数据库中。
- MD5,全称为 Message Digest Algorithm 5(消息摘要算法第五版).详情请参考 * :MD5MD5加密后是一个字
- 星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏——“小猫钓鱼”。游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份。