当前位置:   article > 正文

Open CV系列学习笔记(八)图像直方图 2021-02-02_open cv show

open cv show

Open CV系列学习笔记(八)图像直方图

什么是图像直方图

图像直方图由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。
图像分割
图像分割是图像识别的基础,对图像进行图像分割,将目标从背景区域中分离出,可以避免图像识别时在图像上进行盲目的搜索,大大提高图像识别的效率以及识别准确率。基于灰度直方图的阈值分割计算简单,适用于目标与背景分布于不同灰度范围的灰度图像,特别是遥感图像
图像检索
图像检索是 [1] 指快速有效地从大规模图像数据库中检索出所需的图像,是目前一个非常重要又富有的挑战性的研究课题。颜色特征由于其直观性、计算代价较小等优点,在图像检索中扮演着重要角色,早期的图像检索算法也主要利用颜色特征,特别是颜色直方图。
图像分类
图像分类任务主要是对一组图进行一系列自动处理,最终确定图形所属的类别。图像分类具有广泛的应用前景,是计算机视觉的难点问题。针对图像分类的算法众多,其中以基于bag-words模型的方法最为经典有效。该方法首先利用提取的颜色、形状等特征构建视觉词典,然后在图像上统计视觉词的直方图,最后利用视觉词直方图作为特征运用分类器进行分类决策。
在这里插入图片描述
在这里插入图片描述

一维操作

代码:

def plot_demo(image):#一维操作
    plt.hist(image.ravel(),256,[0,256])
    plt.show()
  • 1
  • 2
  • 3

结果:
在这里插入图片描述

多维操作

代码:

def image_hist(image):#多维操作
    color = ("blue","green","red")
    for i,color in enumerate(color):
        hist = cv.calcHist([image],[i],None,[256],[0,256])
        plt.plot(hist,color = color)
        plt.xlim([0,256])
    plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:
在这里插入图片描述
在这里插入图片描述

完整代码:

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):
        hist = cv.calcHist([image],[i],None,[256],[0,256])
        plt.plot(hist,color = color)
        plt.xlim([0,256])
    plt.show()

print("--------HEllow Python-------")
src = cv.imread("E:/picture/03.jpg")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
image_hist(src)
cv.waitKey(0)


cv.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/141028
推荐阅读
相关标签
  

闽ICP备14008679号