当前位置: 首页 > news >正文

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”。

函数原型

std::tuple<GMat, GMat, GMat> cv::gapi::split3 
(const GMat &  	src
) 	

参数

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

代码示例

#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);// 合并三个调整大小后的通道为一个交错格式的 GMatGMat out = gapi::merge3(b_resized, g_resized, r_resized);// 构建 GComputationGComputation computation(in, out);// 执行计算Mat dst;computation.apply(src_bgr, dst);// 显示结果imshow("原始图像", src_bgr);imshow("调整大小后的图像", dst);waitKey();return 0;
}

运行结果

在这里插入图片描述

http://www.xdnf.cn/news/305695.html

相关文章:

  • Coding Practice,48天强训(29)
  • MySQL8查询某个JSON类型的字段中出现过的所有键名(json key name)并去重返回
  • CKESC ROCK 280A-M 电调专业测评:工业级性能与智能保护的深度平衡
  • 如何从服务器日志中分析是否被黑客攻击?
  • 多线程系列五:面试中常考的单例模式
  • 猿人学web端爬虫攻防大赛赛题第7题——动态字体,随风漂移
  • SecureCrt设置显示区域横列数
  • Vue Element UI 表单弹窗重置问题解决方案 —— 每次打开都初始化,告别残留提示!
  • DeepSeek智能时空数据分析(七):4326和3857两种坐标系有什么区别?各自用途是什么?
  • Linux——https基础理论
  • 产品经理如何借助 DeepSeek 提升工作效能
  • 导向滤波和AV1中的自导滤波
  • 找客户的软件哪个靠谱 靠谱获客软件推荐
  • 构建 Web 浏览 AI Agent:Pydantic + MCP 实现指南
  • 《面向对象程序设计-C++》实验五 虚函数的使用及抽象类
  • 网站防护如何无惧 DDoS 攻击?
  • 开启docker中mysql的binlog日志
  • 深入理解 mapper-locations
  • 2025母亲节海外网红营销趋势:跨境电商如何抓住节日红利期?
  • 38.前端代码拆分
  • ShardingSphere:使用information_schema查询时报错:Table ‘数据库名称.tables‘ doesn‘t exist
  • C++入门基础(上)
  • 排序算法——堆排序
  • 机器学习 vs 深度学习:关键区别与实际应用
  • chrome inspect 调试遇到的问题
  • 微信小程序BLE蓝牙模块断开后无法再次搜索到原来的蓝牙
  • 【前缀和】矩阵区域和
  • 软考-高级系统架构设计师
  • 【redis】redis 手动切换主从
  • 计算机网络复习资料