OpenCV 图形API(79)图像与通道拼接函数-----将一个三通道的 GMat 图像拆分为三个单独的单通道 GMat函数split3()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

将一个 3 通道的矩阵拆分为 3 个单通道矩阵。

该函数将一个 3 通道的矩阵拆分成 3 个单通道矩阵:
mv [ c ] ( I ) = src ( I ) c \texttt{mv} [c](I) = \texttt{src} (I)_c mv[c](I)=src(I)c

即输出的每个矩阵对应输入矩阵中的一个通道。

所有输出矩阵的类型 必须为 CV_8UC1(8 位无符号单通道)。

函数 merge3 可以执行相反的操作(将三个单通道矩阵合并成一个 3 通道矩阵)。

注意事项:

函数的文本 ID 是 "org.opencv.core.transform.split3"。

函数原型

cpp 复制代码
std::tuple<GMat, GMat, GMat> cv::gapi::split3 
(
 	const GMat &  	src
) 	

参数

  • 参数 src:输入的 3 通道图像矩阵(CV_8UC3 类型)。

代码示例

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/gapi/imgproc.hpp>

using namespace cv;
using namespace cv::gapi;

int main() {
    // 加载图像
    Mat src_bgr = imread("/media/dingxin/data/study/OpenCV/sources/images/Lenna.png");
    if (src_bgr.empty()) {
        std::cerr << "无法加载图像!" << std::endl;
        return -1;
    }

    // 定义 G-API 输入输出图
    GMat in;  // 输入节点

    // 拆分输入图像为三个通道(B, G, R)
    auto [b, g, r] = gapi::split3(in);

    // 将每个通道分别调整大小
    Size new_size(320, 240);
    GMat b_resized = gapi::resize(b, new_size, INTER_LINEAR);
    GMat g_resized = gapi::resize(g, new_size, INTER_LINEAR);
    GMat r_resized = gapi::resize(r, new_size, INTER_LINEAR);

    // 合并三个调整大小后的通道为一个交错格式的 GMat
    GMat out = gapi::merge3(b_resized, g_resized, r_resized);

    // 构建 GComputation
    GComputation computation(in, out);

    // 执行计算
    Mat dst;
    computation.apply(src_bgr, dst);

    // 显示结果
    imshow("原始图像", src_bgr);
    imshow("调整大小后的图像", dst);
    waitKey();

    return 0;
}

运行结果

相关推荐
neardi临滴科技3 分钟前
Neardi Pi 4-3588:开启 8K 极速智能,赋能企业级边缘计算新时代
人工智能·嵌入式硬件·边缘计算·rk3588·开发板
思通数据3 分钟前
AI智能预警系统:矿山、工厂与油气站安全管理架构浅析
人工智能·深度学习·安全·目标检测·机器学习·计算机视觉·架构
敖行客 Allthinker5 分钟前
【无标题】
人工智能·创业创新
JAVA+C语言5 分钟前
CAXA 3D 实体设计 2025:国产三维 CAD 的全流程研发升级下载安装
人工智能
SJLoveIT6 分钟前
神经网络反向传播推导笔记 (整理版)
人工智能·笔记·神经网络
love530love13 分钟前
【笔记】华硕 ROG MAXIMUS Z890 HERO 主板 BIOS 更新完整操作实录
运维·人工智能·windows·笔记·单片机·嵌入式硬件·bios
深度学习实战训练营14 分钟前
Monodepth:基于左右一致性的无监督单目深度估计,单目估计的起步-k学长深度学习专栏
人工智能·深度学习
逐梦苍穹17 分钟前
为什么 AI 时代用 macOS 更好(以及如何少踩坑)
人工智能·macos
碎碎思20 分钟前
FINN:FPGA AI 推理新范式 —— 定制化、高性能、量化神经网络编译器框架
人工智能·深度学习·神经网络·机器学习·fpga开发
光锥智能24 分钟前
钉钉发布全球首个工作智能操作系统Agent OS,重构AI时代的工作方式
人工智能·重构·钉钉