创客出手

目录

OpenCV Python 图像矩阵(numpy)的均值(mean)和标准差(std)

本示例使用的OpenCV版本是:OpenCV 4.1.1
运行Python的编辑器:Jupyter notebook 6.0.0

实现目的

学会使用NumPy的meanstd方法,分别得出均值和标准差,对图像矩阵进行操作

file

实现代码

1,加载需要的库和图像并以RGB模式显示

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('dog.png').astype(np.float32) / 255
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)

2,对图像的矩阵减平均值

# 通过img.copy()方法,复制img的数据到mean_img
mean_img = img.copy()
# 使用 .mean() 方法可得出 mean_img 的平均值
print(mean_img.mean())

# mean_img -= mean_img.mean() 等效于 mean_img = mean_img - mean_img.mean()
# 减去平均值,得出零平均值矩阵
mean_img -= mean_img.mean()
# 显示图像
plt.imshow(mean_img)

file

3,再对图像矩阵除于标准差

std_img = mean_img.copy()
# 输出 std_img 的标准差
print(std_img.std())

# std_img /= std_img.mean() 等效于 std_img = std_img / std_img.mean()
# 除于标准差,得出单位方差矩阵
std_img /= std_img.std()
# 显示图像
plt.imshow(std_img)

file

程序说明

这些NumPy的数据有计算平均值mean和标准差std的方法。
要对矩阵进行标准化,我们需要减去均值得到一个零均值,以通过零均值并除以矩阵的标准差得到一个单位方差矩阵。

更多关于 的文章
关注创客出手公众号

关注创客出手