OpenCV计算平均值cv::mean实例代码
作者:翟天保Steven 发布时间:2023-06-19 10:26:02
标签:opencv,平均值,cv::mean
前言
opencv中封装了一个专门用于求解cv::Mat均值的函数,即cv::mean(&cv::Mat),该函数会得到Mat中各个通道的均值,若要获取指定通道的均值,做进一步解析即可。
下面给出opencv的官方说明:
Operations on Arrays
函数原型
Scalar mean(InputArray src, InputArray mask = noArray());
参数说明
InputArray类型的src,输入图像,如Mat类型。
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函数的调用,所得结果一致,上述测试可供大家了解函数的使用
来源:https://blog.csdn.net/zhaitianbao/article/details/118387158


猜你喜欢
- __author__ = 'Administrator'import numpy as npimport cv2mri_im
- 1.安装pip我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装requests模块使用pip,所以我这里第一步
- 所以呢,在引用js文档的时候,要设置被引用的文档是什么编码的。 如:一个utf-8的页面引用一个gb2312的js文档,那么就要这么写 &l
- 如下所示:######### Extract all files from src_dir to des_dirdef extract_ta
- Strconvstrconv包实现了基本数据类型和其字符串表示的相互转换。更多函数请查看官方文档中文文档string与int类型转换Atoi
- Seconds_Behind_Master对于mysql主备实例,seconds_behind_master是衡量master与slave之
- 在linux服务器lvs负载均衡、双机热备应用中经常用到mysql双机热备,安装和配置过程如下:一、 安装MYSQL# cp mysql-s
- 在认识ImageMagick之前,我使用的图像浏览软件是KuickShow,截图软件是KSnapShot,这两款软件都是KDE附带的软件,用
- Python是一门高级编程语言,其拥有多种循环方式,如for循环、while循环、do-while循环等。在编写程序时,需要根据不同的场景和
- 本文实例讲述了python处理大数字的方法。分享给大家供大家参考。具体实现方法如下:def getFactorial(n): &
- 通过将身份认证令牌直接传给 API 服务器,可以避免使用 kubectl 代理,像这样:使用 grep/cut 方式:# 查看所有的集群,因
- 问题Go语言的输入Scan,无论是Scanf,还是Scanln还是其他,都是以空格结束输入的。但是我们输入可能是带空格的。比如 Fan On
- ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错
- 按照CSS规范,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列。因此当其高度超出包含
- 目标网址:https://www.baidu.com/要获取的内容:链接分析:从下图可以看出只需要获取关键字,再构建就可以了。完整代码:im
- 1. 前台templates/upload/upload.html<!DOCTYPE html><html lang=&q
- 前言: 收到疯狂的慢查询及请求超时报警,通过metrics分析出来自mysql请求的异常,c
- Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。查看、添加、提交、删除、
- 1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外
- “/xxxxx”应用程序中的服务器错误。 -------------------------------------------------