OpenCV 图形API(12)用于计算图像或矩阵的平均值函数mean()

发布于:2025-04-04 ⋅ 阅读:(15) ⋅ 点赞:(0)
  • 操作系统: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

网站公告

今日签到

点亮在社区的每一天
去签到