OpenCV 图形API(9)用于执行矩阵与标量之间的逐元素除法操作函数divC()

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

算法描述

矩阵除以标量。
该函数 divC 将矩阵 src 的每个元素除以给定的标量值:
dst(I)   =   saturate(src(I)*scale/divisor) \texttt{dst(I) = saturate(src(I)*scale/divisor)} dst(I) = saturate(src(I)*scale/divisor)
当除数为零时,dst(I) 也将为零。多通道矩阵的不同通道独立处理。矩阵可以是单通道或多通道。输出矩阵必须与 src 具有相同的大小和深度。

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

注意
函数文本ID是 “org.opencv.core.math.divC”。

函数原型

GMat cv::gapi::divC 	
(
 	const GMat &  	src,
	const GScalar &  	divisor,
	double  	scale,
	int  	ddepth = -1 
) 		

参数

  • 参数src:输入矩阵。
  • 参数divisor:要除以的数。
  • 参数ddepth:输出矩阵的可选深度。如果为 -1,则输出矩阵的深度将与输入矩阵的深度相同。
  • 参数scale:缩放因子。

代码示例

#include <iostream>
#include <opencv2/gapi/core.hpp>  // 包含G-API核心功能
#include <opencv2/opencv.hpp>

int main()
{
    // 创建示例数据
    cv::Mat src = ( cv::Mat_< float >( 2, 2 ) << 4.0f, 8.0f, 16.0f, 32.0f );
    cv::Scalar divisor( 2.0 );  // 标量除数
    double scale = 1.0;         // 缩放因子

    // 检查输入矩阵是否为空
    if ( src.empty() )
    {
        std::cerr << "无法加载输入矩阵,请检查数据。" << std::endl;
        return -1;
    }

    // 定义G-API图中的输入
    cv::GMat gsrc;
    cv::GScalar gdivisor( divisor );
    int ddepth = -1;  // 使用默认深度

    // 执行除法操作
    auto gdst = cv::gapi::divC( gsrc, gdivisor, scale, ddepth );

    // 创建一个计算图
    cv::GComputation div_graph( cv::GIn( gsrc ), cv::GOut( gdst ) );

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

    // 编译并执行计算图
    div_graph.apply( cv::gin( src ), cv::gout( result ) );

    // 打印结果
    std::cout << "Result: \n" << result << std::endl;

    return 0;
}

运行结果

Result: 
[2, 4;
 8, 16]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村北头的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值