大家好,今天我们学习的内容是图像直方图,在此之前,我们先来了解了解什么是图像直方图。
图像直方图的概念
图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。
图像直方图的应用
直方图均衡化的作用
直方图均衡化通常用来增加图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。
直方图均衡化以后,亮度可以更好的在直方图上分布。以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效的扩展常用亮度来实现这种功能。
图像分割
图像分割是图像识别的基础,对图像进行图像分割,将目标从背景区域中分离出,可以避免图像识别时在图像上进行盲目的搜索,大大提高图像识别的效率以及识别准确率。基于灰度直方图的阈值分割计算简单,适用于目标与背景分布于不同灰度范围的灰度图像,特别是遥感图像。
图像检索
图像检索是指快速有效地从大规模图像数据库中检索出所需的图像,是目前一个非常重要又富有的挑战性的研究课题。颜色特征由于其直观性、计算代价较小等优点,在图像检索中扮演着重要角色,早期的图像检索算法也主要利用颜色特征,特别是颜色直方图。
图像分类
图像分类任务主要是对一组图进行一系列自动处理,最终确定图形所属的类别。图像分类具有广泛的应用前景,是计算机视觉的难点问题。针对图像分类的算法众多,其中以基于bag-words模型的方法最为经典有效。该方法首先利用提取的颜色、形状等特征构建视觉词典,然后在图像上统计视觉词的直方图,最后利用视觉词直方图作为特征运用分类器进行分类决策。
注释
对于应用于图像分割的灰度直方图,现有的灰度直方图形状容易受到噪声干扰,构建在分割算法鲁棒性不足,迫切需要研究一种消除噪声干扰且适应能力强的灰度直方图图像分割方法;对于应用于图像检索的颜色直方图,传统颜色直方图描述方法存在特征维数高、受光照影响、不能表达相近颜色间相关性及丢失空间位置信息的问题。因此,需要研究综合考虑多种因素的颜色直方图法,现有的基于bag-of-words的方法在视觉词的构造、直方图的统计上仍然存在不足之处,使得最终得到的视觉词直方图不能很好的表达图像类别特征,因此需要研究新的基于bag-of-words的算法解决这些问题。
在敲代码之前,先打开cmd命令符,输入pip install matplotlib,等待他安装完成
完整代码
♾️ python 代码:import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
def plot_demo(image):
plt.hist(image.ravel(), 256, [0, 256])#统计频次
plt.show("直方图")
def image_hist(image):
color = ('blue', 'green', 'red')
for i, color in enumerate(color):
hist1 = cv.calcHist([image], [i], None, [256], [0, 256])
plt.plot(hist1, color=color)
plt.xlim([0, 256])
plt.show()
print("--------- Hello Python ---------")
src = cv.imread("D:/gan/ma.png")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
plot_demo(src)
image_hist(src)
cv.waitKey(0)
cv.destroyAllWindows()
显示结果