- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
计算矩阵元素的平均值(均值)。
mean函数计算矩阵元素的平均值M,每个通道独立计算,并返回该值。
支持的矩阵数据类型包括:CV_8UC1、CV_8UC3、CV_16UC1、CV_16SC1、CV_32FC1。
注意:
该函数的文本ID是"org.opencv.core.math.mean"。
函数原型
GScalar cv::gapi::mean
(
const GMat & src )
}
参数
- 参数src 输入矩阵
代码示例
#include <opencv2/gapi.hpp> // 包含 GAPI 头文件
#include <opencv2/gapi/core.hpp> // 包含G-API核心功能
#include <opencv2/opencv.hpp>
int main()
{
// 1. 读取输入图像
cv::Mat src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/input.jpg" );
if ( src.empty() )
{
std::cerr << "Error: Could not read input image!" << std::endl;
return -1;
}
// 2. 定义 GAPI 计算图
cv::GMat in_src; // 输入 GMat
cv::GScalar mean_val = cv::gapi::mean( in_src ); // 计算均值
cv::GComputation comp( cv::GIn( in_src ), cv::GOut( mean_val ) );
// 3. 执行计算图
cv::Scalar result;
comp.apply( cv::gin( src ), cv::gout( result ) ); // 将 cv::Mat 输入到计算图
// 4. 输出结果
std::cout << "Mean values: ";
if ( src.channels() == 1 )
{ // 灰度图像
std::cout << "Gray: " << result[ 0 ] << std::endl;
}
else
{ // 彩色图像(如 BGR)
std::cout << "B: " << result[ 0 ] << " G: " << result[ 1 ] << " R: " << result[ 2 ] << std::endl;
}
return 0;
}
运行结果
Mean values: B: 254.343 G: 204.943 R: 204.914