OpenCV计算平均值cv::mean实例代码

 更新时间:2021年08月12日 14:49:56   作者:翟天保Steven  
函数cv::mean计算数组元素的平均值M,每个通道都是独立的,并返回这个平均值,这篇文章主要给大家介绍了关于OpenCV计算平均值cv::mean的相关资料,需要的朋友可以参考下

前言

opencv中封装了一个专门用于求解cv::Mat均值的函数,即cv::mean(&cv::Mat),该函数会得到Mat中各个通道的均值,若要获取指定通道的均值,做进一步解析即可。

下面给出opencv的官方说明:

Operations on Arrays

函数原型

Scalar mean(InputArray src, InputArray mask = noArray());

参数说明

  1. InputArray类型的src,输入图像,如Mat类型。
  2. InputArray类型的mask,掩膜,满足要求的位置才进行计算,默认没有掩膜,即全部计算。

测试代码

#include<iostream>
#include<opencv2/opencv.hpp>
#include<ctime>
using namespace std;
using namespace cv;
int main(void)
{
	cv::Mat src = cv::Mat::zeros(5, 5, CV_32FC1);
	cv::Mat mask = cv::Mat::zeros(5, 5, CV_8UC1);
	int rows = src.rows;
	int cols = src.cols;
	cv::circle(mask, cv::Point(2, 2), 2, 255, -1);
	int number = 0;
	float sum = 0.0f;
	for (int i = 0; i < rows; ++i)
	{
		for (int j = 0; j < cols; ++j)
		{
			if (mask.at<uchar>(i, j) == 255)
			{
				src.at<float>(i, j) = rand() % 255+rand()%100/100.0f;
				sum += src.at<float>(i, j);
				number++;
			}
		}
	}
	float result=cv::mean(src, mask==255)[0];
	float mean_ = sum / number;
	cout << "result:" << result << endl;
	cout << "mean_" << mean_ << endl;
	system("pause");
	return 0;
}

测试效果

图1 自定义矩阵数据

图2 掩膜

图3 计算结果对比

为了便于对比数据,创建了一个5*5的矩阵和掩膜,进行了平均值的计算和mean函数的调用,所得结果一致,上述测试可供大家了解函数的使用~

总结

到此这篇关于OpenCV计算平均值cv::mean的文章就介绍到这了,更多相关OpenCV计算平均值cv::mean内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python 生成器协程运算实例

    python 生成器协程运算实例

    下面小编就为大家带来一篇python 生成器协程运算实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • django使用F方法更新一个对象多个对象字段的实现

    django使用F方法更新一个对象多个对象字段的实现

    这篇文章主要介绍了django使用F方法更新一个对象多个对象字段的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python异常触发及自定义异常类解析

    python异常触发及自定义异常类解析

    这篇文章主要介绍了python异常触发及自定义异常类解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 详解python网络进程

    详解python网络进程

    进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。本文将介绍python实现网络进程
    2021-06-06
  • python3实现字符串的全排列的方法(无重复字符)

    python3实现字符串的全排列的方法(无重复字符)

    这篇文章主要介绍了python3实现字符串的全排列的方法(无重复字符),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • python实现的udp协议Server和Client代码实例

    python实现的udp协议Server和Client代码实例

    这篇文章主要介绍了python实现的udp协议Server和Client代码实例,需要的朋友可以参考下
    2014-06-06
  • Python 中 Shutil 模块详情

    Python 中 Shutil 模块详情

    这篇文章主要介绍了 Python 中 Shutil 模块,shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。下面来看文章详细内容
    2021-11-11
  • python中的位置参数和关键字参数详解

    python中的位置参数和关键字参数详解

    位置参数和关键字参数是 Python 中的两种不同类型的函数参数传递方式,位置参数依赖于参数的位置顺序,而关键字参数通过参数名传递,不受位置影响,本文通过代码示例给大家详细介绍了python中的位置参数和关键字参数,需要的朋友可以参考下
    2023-12-12
  • Python入门教程(四十一)Python的NumPy数组索引

    Python入门教程(四十一)Python的NumPy数组索引

    这篇文章主要介绍了Python入门教程(四十一)Python的NumPy数组索引,数组索引是指使用方括号([])来索引数组值,numpy提供了比常规的python序列更多的索引工具,除了按整数和切片索引之外,数组可以由整数数组索引、布尔索引及花式索引,需要的朋友可以参考下
    2023-05-05
  • python高级内置函数用法实例

    python高级内置函数用法实例

    在本篇文章里小编给大家整理的是一篇关于python高级内置函数用法实例内容,有兴趣的朋友们可以学参考下。
    2021-09-09

最新评论