利用OpenCV的函数mean()和meanStdDev()计算图像的均值和标准差
Posted 昊虹AI笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用OpenCV的函数mean()和meanStdDev()计算图像的均值和标准差相关的知识,希望对你有一定的参考价值。
利用OpenCV的函数mean()和meanStdDev()计算图像的均值和标准差
函数mean()的原型和介绍如下:
函数meanStdDev()的原型和介绍如下:
可见,这两个函数的使用是很简单的。
关键是大家在求矩阵或图像的均值或均值时能想到这两个函数。
C++示例代码如下:
//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术
//OpenCV版本 OpenCV3.0
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
cv::Mat A1 = (cv::Mat_<uchar>(3, 3) << 1, 2, 3,
4, 5, 6,
7, 8, 9);
cout << "A1中的数据为:\\n" << A1 << endl << endl;
cv::Scalar A1_mean;
A1_mean = mean(A1);
cout << "通过函数mean计算得到的A1的均值为:" << A1_mean << endl << endl;
cv::Scalar A1_mean_2, A1_sd;
meanStdDev(A1, A1_mean_2, A1_sd);
cout << "通过函数meanStdDev计算得到的A1的均值为:" << A1_mean_2 << endl << endl;
cout << "通过函数meanStdDev计算得到的A1的标准差为:" << A1_sd << endl << endl;
return(0);
如果对代码中的 cv::Scalar 不清楚,可以参考我的另一篇博文:
https://www.hhai.cc/thread-144-1-1.html
运行结果如下:
Python示例代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术
# OpenCV的版本为4.4.0
import numpy as np
import cv2 as cv
if __name__ == '__main__':
A1 = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype='int8')
# 用函数mean()求A1的均值
A1_mean_1 = cv.mean(A1)
# 用函数meanStdDev()求A1的均值和标准差
A1_mean_2, A1_sd = cv.meanStdDev(A1)
运行结果如下:
图像均值和均方差的一个具体应用,可以参见博文“尺寸相同的两幅图像的两个相似度评价指标-PSNR和SSIM,链接https://www.hhai.cc/thread-148-1-1.html”
以上是关于利用OpenCV的函数mean()和meanStdDev()计算图像的均值和标准差的主要内容,如果未能解决你的问题,请参考以下文章
利用OpenCV的函数split()和merge()实现通道的分离与合并