数字图像处理-- 图像的统计方法

前面我们提到,用均值滤波器、中值滤波器、高斯滤波器等可以降低图像中的噪声,其副作用是带来了图像模糊。我们降低噪声的目的,当然是为了提高图像的质量,这是“图像增强”的一个重要应用。

那图像质量怎么评价呢?这是个不同人有不同见解,比较主观的事情。图像增强从一开始就是建立在特定问题的基础上的。对于不同的特定问题,就需要不同的图像增强方法,其增强后的图像质量当然评价标准也不一样。因此,并不存在“通用”的图像增强理论。

但是主观的事情,并不代表完全没有客观的评价标准。我们看下面3张图:

这里写图片描述

从主观上我们看,第一幅,第二幅图像整体偏暗,没有第3幅图像好。整体偏暗表示灰度值都比较低,而且灰度值之间相差不大。

我们知道,统计学中最基本的统计量是均值和标准差。表示一组数据中的平均值和数值之间的离散程度。而一副图像就是一个矩阵数组,表示灰度值的集合,那么一副图像有没有平均灰度值和标准差呢。

我们统计下上面3副图像中的均值和标准差:

print(np.mean(lena1), np.mean(lena2), np.mean(lena3))
print(np.std(lena1), np.std(lena2), np.std(lena3))
  
  
  • 1
  • 2

输出结果:

40.32  80.64  134.40
12.45  24.91  41.51
  
  
  • 1
  • 2

那么,我们很容易得出一些推论:
1.均值太小,表明有大量的灰度值接近于0,整体图像就偏暗;
2.均值太大,表明有大量的灰度值接近于255,整体图像就偏亮。
3.标准差太小,表明灰度值之间相差不大,表现在图像上就是亮度变化不明显,看不出差异。
4.标准差太大,表明灰度值一部分很大,一部分很小,分布的很不均匀。

除了均值和标准差,我们在统计学中,通常用直方图来表示一组数据的分布情况。那么,我们怎么知道一副图像中的灰度值分布呢?我们知道,灰度值数据一般的取值范围是[0-255]。对于每个灰度,统计在图像中出现的次数即可,就可以大致知道其分布情况。这和统计学中的数据直方图很像。

下面把上面3副图像的每个灰度值进行下数量统计。

import cv2
import matplotlib.pyplot as plt

lena = cv2.imread("lena1.png", 0)
lena1 = cv2.imread("lena1.png", 1)
lena2 = cv2.imread("lena2.png", 1)
lena3 = cv2.imread("lena3.png", 1)

print(lena1.shape, lena2.shape, lena3.shape)

plt.subplot(321)
plt.imshow(cv2.cvtColor(lena1, cv2.COLOR_BGR2RGB))
plt.subplot(322)
plt.hist(lena1[:, :, 0].ravel(), 256, [0, 256])
plt.subplot(323)
plt.imshow(cv2.cvtColor(lena2, cv2.COLOR_BGR2RGB))
plt.subplot(324)
plt.hist(lena2[:, :, 0].ravel(), 256, [0, 256])
plt.subplot(325)
plt.imshow(cv2.cvtColor(lena3, cv2.COLOR_BGR2RGB))
plt.subplot(326)
plt.hist(lena3[:, :, 0].ravel(), 256, [0, 256])

plt.show()
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

这里写图片描述

可以看出,第一幅图像中灰度值大量集中在0-50之间,整体偏暗,第二幅图像中灰度值大量集中在0-150之间,而第三幅图像的灰度值大致均匀的分布在0-255的区间内。

直观上,可以得出这样的结论:若一副图像的像素值倾向于占据整个可能的灰度值区间,并且分布相对均匀,则该图像能够展示灰色调的较大变化和丰富的灰度细节,也就是具有高对比度的外观。

转载自:https://blog.csdn.net/saltriver/article/details/78986820

猜你喜欢

转载自blog.csdn.net/baidu_38172402/article/details/88990802