Android基于opencv实现多通道分离与合并

作者:易冬 时间:2022-05-04 09:49:29 

目录
  • 多通道分离

    • 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()
      }

      结果

      Android基于opencv实现多通道分离与合并

      源码

      github.com/onlyloveyd/…

      来源:https://juejin.cn/post/6873982596217307143

      标签:Android,opencv,多通道分离与合并
      0
      投稿

      猜你喜欢

    • Flutter Widgets MediaQuery控件屏幕信息适配

      2023-06-29 04:48:21
    • SpringBoot Bean被加载时进行控制

      2022-10-01 14:06:53
    • C#使用Objects Comparer进行对象比较

      2022-06-03 05:40:30
    • java数据结构基础:单链表与双向链表

      2023-03-02 09:21:59
    • Android实现多个连续带数字圆圈效果

      2021-09-10 02:46:23
    • Hystrix Dashboard断路监控仪表盘的实现详细介绍

      2022-07-29 05:27:26
    • 使用Java实现Redis限流的方法

      2023-09-27 01:43:47
    • C#中的引用类型以及特殊引用类型详解

      2023-06-18 01:43:46
    • Java项目中获取路径的绝对路径问题和相对路径问题

      2023-07-09 13:25:01
    • MyBatis通用Mapper和PageHelper的过程详解

      2022-09-29 16:17:03
    • Spring Boot配置线程池拒绝策略的场景分析(妥善处理好溢出的任务)

      2022-08-05 07:12:24
    • java实现1M图片压缩优化到100kb实现示例

      2022-08-08 03:59:43
    • Android中Market的Loading效果实现方法

      2023-11-16 09:37:33
    • 搞懂Java线程池

      2021-08-04 10:01:06
    • 通过FeignClient调用微服务提供的分页对象IPage报错的解决

      2022-01-27 20:19:23
    • java实现随机数生成器

      2023-06-15 04:26:53
    • springboot如何开启一个监听线程执行任务

      2022-01-09 08:44:48
    • Spring boot 集成Dubbox的方法示例

      2023-09-22 23:49:04
    • Java 自定义注解的魅力

      2023-06-29 14:45:15
    • Java C++实现相同MD5加密算法的方式

      2023-10-12 12:26:02
    • asp之家 软件编程 m.aspxhome.com