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

OpenCV 图形API(18)用于执行两个矩阵(或数组)的逐元素减法操作函数sub()

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

描述

计算两个矩阵之间的逐元素差值。

sub 函数计算两个矩阵之间的差值,要求这两个矩阵具有相同的尺寸和通道数:
dst ( I ) = src1 ( I ) − src2 ( I ) \texttt{dst}(I) = \texttt{src1}(I) - \texttt{src2}(I) dst(I)=src1(I)src2(I)
此函数可以用矩阵表达式替代:
dst = src1 − src2 \texttt{dst} = \texttt{src1} - \texttt{src2} dst=src1src2
输入矩阵和输出矩阵可以具有相同的或不同的深度。例如,你可以减去两个 8 位无符号矩阵并将结果存储为一个 16 位有符号矩阵。输出矩阵的深度由 ddepth 参数决定。如果 src1.depth() == src2.depth(),ddepth 可以设置为默认值 -1。在这种情况下,输出矩阵将具有与输入矩阵相同的深度。这些矩阵可以是单通道或多通道的。

支持的矩阵数据类型包括:CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1。

注意:
该函数的文本ID是 “org.opencv.core.math.sub”

函数原型

GMat cv::gapi::sub 
(
 	const GMat &  	src1,
	const GMat &  	src2,
	int  	ddepth = -1 
) 		

参数

  • 参数src1: 第一个输入矩阵。
  • 参数src2: 第二个输入矩阵。
  • 参数ddepth: 输出矩阵的可选深度。

代码示例

#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/opencv.hpp>

int main()
{
    // 创建示例输入矩阵
    cv::Mat src1 = ( cv::Mat_< float >( 3, 3 ) << 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f, 13.f );

    cv::Mat src2 = ( cv::Mat_< float >( 3, 3 ) << 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f );

    // 定义G-API计算图
    cv::GComputation subComp( []() {
        cv::GMat in1, in2;
        cv::GMat out = cv::gapi::sub( in1, in2 );  // 计算逐元素差
        return cv::GComputation( cv::GIn( in1, in2 ), cv::GOut( out ) );
    } );

    // 输出矩阵
    cv::Mat dst;

    // 执行计算图
    subComp.apply( cv::gin( src1, src2 ), cv::gout( dst ) );

    // 打印结果
    std::cout << "Element-wise subtraction result: \n" << dst << std::endl;

    return 0;
}

运行结果

Element-wise subtraction result: 
[4, 4, 4;
 4, 4, 4;
 4, 4, 4]

相关文章:

  • 机器学习——ROC曲线、PR曲线
  • 剖析AI与5G:是夸大其词,还是时代变革的引擎?-优雅草卓伊凡
  • Hook javascipt 获取的时间 -- xyctf 2025 ez_puzzle wp
  • Vue3 Composition API 深度开发指南
  • ECharts配置优化
  • 信息学奥赛一本通 1861:【10NOIP提高组】关押罪犯 | 洛谷 P1525 [NOIP 2010 提高组] 关押罪犯
  • 软考系统架构设计师之大数据与人工智能笔记
  • [ctfshow web入门] web17
  • 力扣HOT100之链表:19. 删除链表的倒数第 N 个结点
  • 【MySQL 数据库】数据表的操作
  • 永磁同步电机无速度算法--基于HOPLL的滑模观测器
  • Python设计模式:组合模式
  • JavaScript基础--22-call、apply 和 bind
  • PPP实验笔记
  • C#语言的饼图
  • java.io快读快写StreamTokenizer、PrintWriter
  • 低级错误 System.setProperty 值为空时引发空指针
  • ubuntu,react的学习(1)
  • PandaAI:一个基于AI的对话式数据分析工具
  • 2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
  • 微信网站开发哪家好/seo刷点击软件
  • 深圳房产网站建设/凡科建站代理登录
  • php网站开发费用/石家庄seo排名公司
  • 重庆网站建设备案/今日桂林头条新闻
  • 四川建筑人员信息查询/东莞seo建站优化工具
  • 个人网站备案都需要什么/百度小程序怎么进入