1. 程式人生 > >Python3與OpenCV3.3 影象處理(十一)--影象直方圖

Python3與OpenCV3.3 影象處理(十一)--影象直方圖

一、什麼是影象直方圖

由於其計算代價較小,且具有影象平移、旋轉、縮放不變性等眾多優點,廣泛地應用於影象處理的各個領域,特別是灰度影象的閾值分割、基於顏色的影象檢索以及影象分類。


二、應用範圍

影象主題內容與背景分離、影象分類、檢索等


三、示例

注意:編寫程式碼前需確保 matplotlib 庫已安裝,如未安裝在命令列中輸入:pip install matplotlib

import cv2 as cv
from matplotlib import pyplot as plt


def plot(image):
    """簡單的影象直方圖"""
    plt.hist(image.ravel(),256,[0,256])
    plt.show("直方圖")


def image_his(image):
    """
    這裡生成的直方圖是opencv 對圖片
    進行分割、影象檢索等所需要的
    """
    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()



#讀入圖片檔案
src=cv.imread('textImg.jpg')
cv.imshow('def',src)

#圖一
plot(src)
#圖二
image_his(src)

cv.waitKey(0)
cv.destroyAllWindows()

圖一


圖二

覺得不錯打賞一下