- 操作系统: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]