最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入了解Python二維直方圖

 更新時間:2021年12月25日 15:40:02   作者:機器視覺小學徒  
只統(tǒng)計像素的灰度值這一特征,可將其成為一維直方圖。二維直方圖可以統(tǒng)計像素的色相和飽和度,用于查找圖像的顏色直方圖。本文將為大家介紹分別使用OpenCV和NumPy函數(shù)計算直方圖,需要的可以學習一下

前言

只統(tǒng)計像素的灰度值這一特征,可將其成為一維直方圖。二維直方圖可以統(tǒng)計像素的色相和飽和度,用于查找圖像的顏色直方圖。

一、OpenCV中的二維直方圖

OpenCV仍然使用cv2.calcHist()函數(shù)來查找圖像的顏色直方圖,只是在指定參數(shù)時與之前有所區(qū)別。

cv2.calcHist()函數(shù)的基本格式如下:

hist =cv2.calcHist(image, channels, mask, histSize, ranges)

image參數(shù)指定的原圖像應從BGR色彩空間轉(zhuǎn)換為HSV色彩空間, 實際參數(shù)需要用方括號括起來

channels參數(shù)設置為[0,1]時, 表示同時處理色相和飽和度

histSize參數(shù)設置BINS值為[180,256]時, 表示色相為180, 飽和度為256

ranges參數(shù)設置為[0,180,0,256]時, 表示色相的取值范圍為[0,180], 飽和度的取值范圍為[0,2565]

cv2.calcHist()函數(shù)返回的顏色直方圖可以直接使用cv2.show()函數(shù)顯示。

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

img = cv2.imread('XIAN.jpg')
cv2.namedWindow('orininal', cv2.WINDOW_NORMAL)
cv2.imshow('orininal', img)

img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hist = cv2.calcHist([img2], [0, 1], None, [180, 256], [0,180,0,256])

cv2.namedWindow('2DHist', cv2.WINDOW_NORMAL)
cv2.imshow('2DHist', hist)

cv2.waitKey(0)
cv2.destroyAllWindows()

plt.imshow(hist, interpolation = 'nearest')    # 繪制顏色直方圖
plt.show()                                     # 顯示顏色直方圖

cv2.calcHist()函數(shù)返回的顏色直方圖是一個大小為180*256的二維數(shù)組,用cv2.imshow()函數(shù)顯示時是一副灰度圖像,不能直接顯示出顏色的分布情況。

可以使用matplotlib.pyplot.imshow()函數(shù)繪制具有不同顏色的二維直方圖。

二、Numpy中的二維直方圖

Numpy的np.histogram2d()函數(shù)用于計算二維直方圖,其基本格式如下:

hist, xedges, yedges = np.histogram2d(x, y, bins, range)

hist為返回的直方圖

xedges為返回的x的直方圖的BINS邊界值

yedges為返回的y的直方圖的BINS邊界值

xy為原圖對應通道轉(zhuǎn)換成的一維數(shù)組

bins為BINS的值, 如[180,256]

range為像素范圍, 格式為[[0, 180],[0, 256]]

img = cv2.imread('building.jpg')
cv2.imshow('orininal', img)

img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(img2)

hist, x, y = np.histogram2d(h.ravel(), s.ravel(), [180, 256], [[0, 180],[0, 256]])

cv2.imshow('2DHist', hist)

cv2.waitKey(0)
cv2.destroyAllWindows()

plt.imshow(hist, interpolation = 'nearest')
plt.show()

可以使用matplotlib.pyplot.imshow()函數(shù)繪制具有不同顏色的二維直方圖。

三、直方圖示例

1、使用Numpy函數(shù)計算直方圖

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

img = cv2.imread('home.jpg')

plt.figure(figsize = (25,25))
imgrgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)        
plt.subplot(2, 2, 1)                                  
plt.title('Original')
plt.axis('off')
plt.imshow(imgrgb)

histb, e1 = np.histogram(img[0].ravel(), 256, [0, 255])   #計算B通道直方圖
histg, e2 = np.histogram(img[1].ravel(), 256, [0, 255])   #計算G通道直方圖
histr, e3 = np.histogram(img[2].ravel(), 256, [0, 255])   #計算R通道直方圖
plt.subplot(2, 2, 2)
plt.plot(histb, color = 'b')              
plt.plot(histg, color = 'g')              
plt.plot(histr, color = 'r')              
plt.title('Hist')


img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)           #轉(zhuǎn)換色彩空間為HSV
h, s, v = cv2.split(img2)
hist, x, y=np.histogram2d(h.ravel(), s.ravel(), [180, 256], [[0, 180], [0, 256]])        #計算顏色直方圖
plt.subplot(2, 2, 3)
plt.title('2Dhist')                                 #設置子圖窗口標題
plt.imshow(hist, interpolation = 'nearest',cmap = 'gray')                                    #繪制顏色直方圖
plt.show()                                          #顯示顏色直方圖

2、使用OpenCV函數(shù)計算直方圖

# 2.使用OpenCV函數(shù)計算直方圖
import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('flower.jpg')

plt.figure(figsize = (25,25))
imgrgb=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)         
plt.subplot(2, 2, 1)                           
plt.imshow(imgrgb)
plt.title('Original')                         
plt.axis('off')

histb = cv2.calcHist([img], [0], None, [256], [0,255])   #計算B通道直方圖
histg = cv2.calcHist([img], [1], None, [256], [0,255])   #計算G通道直方圖
histr = cv2.calcHist([img], [2], None, [256], [0,255])   #計算R通道直方圖
plt.subplot(2, 2, 2)
plt.plot(histb, color= 'b') 
plt.plot(histg, color= 'g') 
plt.plot(histr, color= 'r')  
plt.title('Hist') 


img2=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
hist = cv2.calcHist([img2], [0, 1], None, [180, 256], [0, 180, 0, 256])   
plt.subplot(2, 2, 3)
plt.title('2Dhist')                                 #設置子圖窗口標題
plt.imshow(hist,interpolation = 'nearest',cmap = 'gray')                                    #繪制顏色直方圖
plt.show()                                          #顯示顏色直方圖

到此這篇關(guān)于深入了解Python二維直方圖的文章就介紹到這了,更多相關(guān)Python 二維直方圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pytorch基本變量類型FloatTensor與Variable用法

    Pytorch基本變量類型FloatTensor與Variable用法

    今天小編就為大家分享一篇Pytorch基本變量類型FloatTensor與Variable用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼

    基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼

    這篇文章主要介紹了基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊長的盾牌、高達的源碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python AutoCAD 系統(tǒng)設置的實現(xiàn)方法

    Python AutoCAD 系統(tǒng)設置的實現(xiàn)方法

    這篇文章主要介紹了Python AutoCAD 系統(tǒng)設置的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機制解析

    Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機制解析

    這篇文章主要為大家介紹了Python?range函數(shù)生成一系列連續(xù)整數(shù)的內(nèi)部機制解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 使用python半分鐘輕松完成證件照換底色

    使用python半分鐘輕松完成證件照換底色

    是不是很多小伙伴兒都不清楚公司是需要藍底還是紅底的證件照,今天小編直接帶大家做一款Python換底色的一款小程序,不管什么底色兒,放馬過來
    2021-09-09
  • python Task在協(xié)程調(diào)用實例講解

    python Task在協(xié)程調(diào)用實例講解

    在本篇文章里小編給大家整理了一篇關(guān)于python Task如何在協(xié)程調(diào)用的相關(guān)內(nèi)容,有興趣的朋友們可以參考下。
    2021-04-04
  • 如何查看Mac本機的Python3安裝路徑

    如何查看Mac本機的Python3安裝路徑

    這篇文章主要介紹了如何查看Mac本機的Python3安裝路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 關(guān)于Python字符串顯示u...的解決方式

    關(guān)于Python字符串顯示u...的解決方式

    這篇文章主要介紹了關(guān)于Python字符串顯示u...的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python全棧之模板渲染詳解

    Python全棧之模板渲染詳解

    這篇文章主要為大家詳細介紹了Python全棧之模板渲染,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python用GET方法上傳文件

    Python用GET方法上傳文件

    本文給大家介紹的是在Python中使用GET方法實現(xiàn)上傳文件的方法,起因是有網(wǎng)友說Get方法不能用來上傳文件,于是就做了這個例子,這里分享給大家,有需要的小伙伴參考下吧。
    2015-03-03

最新評論

定日县| 凤庆县| 渭源县| 石门县| 扎赉特旗| 鲁甸县| 卢氏县| 砚山县| 沁源县| 汾阳市| 新巴尔虎右旗| 东安县| 梓潼县| 营山县| 乌苏市| 五峰| 福鼎市| 兴化市| 乌鲁木齐县| 恩平市| 金华市| 股票| 化隆| 德钦县| 泸溪县| 德安县| 榆中县| 陇川县| 芦溪县| 东乡族自治县| 大名县| 宁德市| 林芝县| 金山区| 丽江市| 浮山县| 巫溪县| 洛南县| 余干县| 麻城市| 永善县|