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;
}

运行结果

相关推荐
NAGNIP6 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab8 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab8 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP11 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年11 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼12 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS12 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区13 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈13 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang13 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx