- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
描述
将矩阵与标量相乘。
mulC 函数将给定矩阵 src 的每个元素乘以一个给定的标量值:
dst ( I ) = saturate ( src1 ( I ) ⋅ multiplier ) \texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I) \cdot \texttt{multiplier} ) dst(I)=saturate(src1(I)⋅multiplier)
矩阵可以是单通道或多通道。输出矩阵必须与 src 具有相同的大小。
支持的矩阵数据类型包括:CV_8UC1、CV_8UC3、CV_16UC1、CV_16SC1、CV_32FC1。
注意:
该函数的文本ID是 "org.opencv.core.math.mulC"。
函数原型
cpp
GMat cv::gapi::mulC
(
const GMat & src,
double multiplier,
int ddepth = -1
)
参数
- 参数src:输入矩阵。
- 参数 multiplier:要乘以的因子。
- 参数 ddepth:输出矩阵的可选深度。如果为 -1,输出矩阵的深度将与输入矩阵的深度相同。
代码示例
cpp
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个示例矩阵
cv::Mat src = ( cv::Mat_< double >( 2, 2 ) << 1.0, 2.0, 3.0, 4.0 );
// 标量乘数
double multiplier = 2.5;
// 定义G-API计算图
cv::GComputation mulComp( [ multiplier ]() { // 捕获multiplier
cv::GMat in;
cv::GMat out = cv::gapi::mulC( in, multiplier );
return cv::GComputation( cv::GIn( in ), cv::GOut( out ) );
} );
// 输出矩阵
cv::Mat dst;
// 执行计算图,这里我们不指定特定的backend,使用默认设置
mulComp.apply( src, dst, cv::compile_args() );
// 打印结果
std::cout << "Result: \n" << dst << std::endl;
return 0;
}
运行结果
bash
Result:
[2.5, 5;
7.5, 10]