OpenCV 自学笔记33. 计算图像的均值、标准差和平均梯度
均值、标准差和平均梯度是验证图像质量的常用指标。其中:
均值反映了图像的亮度,均值越大说明图像亮度越大,反之越小;
标准差反映了图像像素值与均值的离散程度,标准差越大说明图像的质量越好;
平均梯度反映了图像的清晰度和纹理变化,平均梯度越大说明图像越清晰;
那么,如何使用OpenCV计算图像的均值、标准差和平均梯度呢?
OpenCV提供了几个函数,可以用来帮助我们计算。
1、计算图像的平均梯度
meanStdDev()函数用于计算一个矩阵的均值和标准差,它的声明如下:
void cv::meanStdDev (
InputArray src,
OutputArray mean,
OutputArray stddev,
InputArray mask = noArray()
)
函数参数
src:输入的源图像或矩阵
mean:输出的均值矩阵
stddev:输出的标准差矩阵
mask:可选的掩码矩阵
使用meanStdDev计算均值和标准差的代码如下:
// 输入图像的路径
// 计算图像的标准差
void cal_mean_stddev(string path) {
Mat src = imread(path);
Mat gray, mat_mean, mat_stddev;
cvtColor(src