OpenCV(六):多通道分离与合并

这篇具有很好参考价值的文章主要介绍了OpenCV(六):多通道分离与合并。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.多通道分离split() 

2.多通道合并merge() 

3.Android JNI demo


1.多通道分离split() 

void cv::split ( InputArray  m,

OutputArrayOfArrays mv

m:待分离的多通道图像。

mv:分离后的单通道图像,为向量vector形式。

2.多通道合并merge() 

void cv::merge ( InputArrayOfArrays mv,

OutputArray    dst

mv:需要合并的图像向量vector,其中每个图像必须拥有相同的尺寸和数据类型。

dst: 合并后输出的图像,通道数等于所有输入图像的通道数总和。文章来源地址https://www.toymoban.com/news/detail-695562.html

3.Android jni demo

#include <jni.h>
#include <string>
#include <android/bitmap.h>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <android/log.h>

#define LOG_TAG "xxx"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)

using namespace cv;
using namespace std;
extern "C"
JNIEXPORT void JNICALL
Java_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_8888
    CV_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 imgs[4];
    split(image,imgs);

    Mat img0,img1,img2,img3;

    img0=imgs[0];
    img1=imgs[1];
    img2=imgs[2];
    img3=imgs[3];

    Mat img_H;
    merge(imgs,4,img_H);

    imwrite("/sdcard/DCIM/img_H.jpg",img_H);
    
    Mat zero=Mat::zeros(Size(image.cols,image.rows),CV_8UC1);

    vector<Mat> imgsV;
    imgsV.push_back(img0);
    imgsV.push_back(img1);
    imgsV.push_back(img2);
    imgsV.push_back(img3);

    Mat imgsVH;
    merge(imgsV,imgsVH);

    imwrite("/sdcard/DCIM/imgsVH.jpg",imgsVH);
}

到了这里,关于OpenCV(六):多通道分离与合并的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV - 图片增加透明通道,图片合并透明通道

    一般人像抠图相关的AI模型会输出一个Mask图,这个Mask图就是我们需要的可以将人物抠出来的Alpha通道信息,我们需要将这个Mask图附加到原始图片上,从BGR图片转成BGRA图片或者从RGB图片转成RGBA图片。 如果使用OpenCV进行图像处理,在为图像增加透明通道时会使用到 cv::split 和

    2024年02月16日
    浏览(39)
  • Python使用OpenCV库对彩色图像进行通道分离

    目录 1、解释说明: 2、使用示例: 3、注意事项: 在Python中,我们可以使用OpenCV库对彩色图像进行通道分离。通道分离是将彩色图像的每个像素分解为三个通道(红、绿、蓝)的过程。这样,我们可以分别处理和分析每个通道的信息。通道分离在图像处理中有很多应用,例如

    2024年02月12日
    浏览(41)
  • OpenCV(一):Android studio jni配置OpenCV(亲测有效,保姆级)

    目录 1.下载OpenCV的SDK 2.创建Android Native C++项目 3.Android项目中导入OpenCV工程 4.导入OpenCV的库文件 5.实现opencv高斯模糊图像处理的demo 要在Android Studio中配置使用OpenCV库的C++方法,需要完成以下步骤: 1.下载OpenCV的SDK 首先,您可以从OpenCV官方网站(Releases - OpenCV )下载适用于And

    2024年02月03日
    浏览(51)
  • OpenCv对于图片的RGB三色通道的提取与合并

    目录 一、前言 二、使用OpenCV提取RGB颜色通道 三、合并RGB颜色通道 当涉及到 图像处理 和 计算机视觉 时,颜色通道(RGB通道)的提取是一个重要的步骤。而OpenCV是一个强大的计算机视觉库,它提供了许多功能,包括图像处理。 什么是RGB颜色通道? 在数字图像中,颜色通道指

    2024年02月06日
    浏览(48)
  • OpenCV for Python 学习第四天 :通道的获取与合并

    上一篇博客,我们学习了如何通过更快的item()和itemset()的方法访问图片,以及了解了图像的兴趣位置的获取方法,那么今天,我们将学习通道的处理方法,通过通道的拆分和合并的实例,让大家更好的了解咱们有关于BGR通道的知识。 在OpenCV中,可以使用split()方法将图像的不

    2024年02月17日
    浏览(42)
  • Android studio配置OpenCV的JNI接口,实现C++代码编程

    目录 一、下载OpenCV-android-sdk 二、新建项目 三、导入OpenCV包  四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件 五、修改Cmake文件  六、配置app的build.gradle文件  七、测试 OpenCV官网地址:https://opencv.org/  点击Library--Releases,下载Android版本,解压得到 OpenCV-android-sdk文件

    2024年02月10日
    浏览(49)
  • jni-Android Bitmap与OpenCV cv::Mat互转

    在封装so库的时候,底层c++代码的实现使用了OpenCV对图片进行操作,而Android中从摄像头中获取到的图片数据类型是Bitmap数据类型的,所以这里就避免不了做数据类型的转换。转换的方案主要有两种, 一种是封装的JNI接口方法直接接收cv::Mat数据类型的参数, 第二种是JNI方法的

    2024年02月01日
    浏览(44)
  • 【环境配置】Android-Studio-OpenCV-JNI以及常见错误 ( 持续更新 )

    最近一个项目要编译深度学习的库,需要用到 opencv 和 JNI,本文档用于记录环境配置中遇到的常见错误以及解决方案 解决办法: 删除文件 .idea/gradle.xml 和 .idea/workspace.xml , 重新编译; 解决办法:Invalid Gradle JDK configuration found 原因是NDK版本过高,跟当前的AndroidStudio版本不匹配

    2024年02月11日
    浏览(45)
  • 2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习。

    一、要理解还是得自己看代码        1.1 完整的测试代码路径如下 https://download.csdn.net/download/qq_37858386/87916944        1.2 代码架构         1.3 app 运行效果 二、android studio 添加 opencv module可以参考下面的文章,比较详细。 Android + OpenCV 入门教程笔记(保姆级)_opencv android_派

    2024年02月09日
    浏览(63)
  • opencv的使用(Ubuntu linux环境,AS jni,AS java)

    最近要完成一个功能,就是把四个视频合成左右上下分布的一个视频。尝试很多方法,最终使用opencv来实现该功能。(通过opencv实现的视频好像没有声音。)研究的步骤,首先在Ubuntu环境测试,该功能是否实现。然后再将生成的库文件放到AS中,使用jni的方法调用,或者将源

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包