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

opencv python統(tǒng)計及繪制直方圖的方法

 更新時間:2019年01月21日 11:46:21   作者:天煞孤星0嚴(yán)  
這篇文章主要介紹了opencv python統(tǒng)計及繪制直方圖的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

灰度直方圖概括了圖像的灰度級信息,簡單的來說就是每個灰度級圖像中的像素個數(shù)以及占有率,創(chuàng)建直方圖無外乎兩個步驟,統(tǒng)計直方圖數(shù)據(jù),再用繪圖庫繪制直方圖。

統(tǒng)計直方圖數(shù)據(jù)

首先要稍微理解一些與函數(shù)相關(guān)的術(shù)語,方便理解其在python3庫中的應(yīng)用和處理

BINS: 在上面的直方圖當(dāng)中,如果像素值是0到255,則需要256個值來顯示直 方圖。但是,如果不需要知道每個像素值的像素數(shù)目,只想知道兩個像素值之間的像素點數(shù)目怎么辦?例如,想知道像素值在0到15之間的像素點數(shù)目,然后是16到31。。。240到255??梢詫?56個值分成16份,每份計算綜合。每個分成的小組就是一個BIN(箱)。在opencv中使用histSize表示BINS。

DIMS: 數(shù)據(jù)的參數(shù)數(shù)目。當(dāng)前例子當(dāng)中,對收集到的數(shù)據(jù)只考慮灰度值,所以該值為1。

RANGE: 灰度值范圍,通常是[0,256],也就是灰度所有的取值范圍。

統(tǒng)計直方圖同樣有兩種方法,使用opencv統(tǒng)計直方圖,函數(shù)如下:

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])

該函數(shù)的參數(shù)在了解以上術(shù)語加上自己百度后可以簡單應(yīng)用

使用numpy統(tǒng)計函數(shù),主要應(yīng)用 numpy.histogram() 函數(shù)(還有 np.bincount() ,還未嘗試,讀者可以自己嘗試,大抵使用方法相同)

hist,bins = np.histogram(img.ravel(),256,[0,256])

opencv處理速度優(yōu)于numpy,同時對于學(xué)習(xí)opencv的同學(xué)來說,多運(yùn)用cv的處理方法無疑更利于學(xué)習(xí)。

繪制直方圖

繪制直方圖一般使用Matplotlib繪制 ,這里要提一下matplotlib的 matplotlib.pyplot.hist() 函數(shù),該函數(shù)可以直接統(tǒng)計繪制中方圖。統(tǒng)計函數(shù)為 calcHist()np.histogram()
這是處理的樣圖

下面是代碼實現(xiàn)

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

img = cv2.imread('/home/yc/Pictures/cat.jpg',0)
plt.hist(img.ravel(),256,[0,256]);
plt.show()

效果

灰度直方圖

當(dāng)然,在顏色圖像檢索之類用法時,我們需要的是BGR直方圖,原理類似,統(tǒng)計時使用 cv2.calcHist()

函數(shù)

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('/home/yc/Pictures/cat.jpg',1)
color = ('b','g','r')
for i,col in enumerate(color):
  histr = cv2.calcHist([img],[i],None,[256],[0,256])
  plt.plot(histr,color = col)
  plt.xlim([0,256])
plt.show()

效果如下

BGR直方圖

此外,再介紹一種很原始的計算灰度直方圖的方法……感覺代碼注釋的很完整,相信讀者也可以看懂

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

def main():
  img=cv2.imread('/home/yc/Pictures/cat.jpg',0)
  #得到計算灰度直方圖的值
  xy=xygray(img)  

  #畫出灰度直方圖
  x_range=range(256)
  plt.plot(x_range,xy,"r",linewidth=2,c='black')
  #設(shè)置坐標(biāo)軸的范圍
  y_maxValue=np.max(xy)
  plt.axis([0,255,0,y_maxValue])
  #設(shè)置坐標(biāo)軸的標(biāo)簽
  plt.xlabel('gray Level')
  plt.ylabel("number of pixels")
  plt.show()

def xygray(img):
  #得到高和寬
  rows,cols=img.shape
  #存儲灰度直方圖
  xy=np.zeros([256],np.uint64)
  for r in range(rows):
    for c in range(cols):
      xy[img[r][c]] += 1
  #返回一維ndarry
  return xy

main()

效果如下

灰度直方圖

以上就是本文的全部內(nèi)容,與一起學(xué)習(xí)opencv的同學(xué)共勉,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中l(wèi)ogger日志模塊詳解

    Python中l(wèi)ogger日志模塊詳解

    這篇文章主要介紹了Python中l(wèi)ogger日志模塊詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python 3利用Dlib 19.7實現(xiàn)攝像頭人臉檢測特征點標(biāo)定

    python 3利用Dlib 19.7實現(xiàn)攝像頭人臉檢測特征點標(biāo)定

    這篇文章主要為大家詳細(xì)介紹了python 3利用Dlib 19.7實現(xiàn)攝像頭人臉檢測特征點標(biāo)定,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python學(xué)習(xí)入門之區(qū)塊鏈詳解

    Python學(xué)習(xí)入門之區(qū)塊鏈詳解

    區(qū)塊鏈的基礎(chǔ)概念很簡單:一個分布式數(shù)據(jù)庫,存儲一個不斷加長的 list,list 中包含著許多有序的記錄。下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)入門之區(qū)塊鏈的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來一起看看吧。
    2017-07-07
  • 使用Python結(jié)合Tkinter和PyAutoGUI開發(fā)精確截圖工具

    使用Python結(jié)合Tkinter和PyAutoGUI開發(fā)精確截圖工具

    在日常工作中,截圖是一個非常常見的需求,雖然?Windows?自帶截圖工具,但有時我們需要更精確的截圖方式,比如選取特定區(qū)域、快速保存截圖并進(jìn)行預(yù)覽,本篇博客將介紹一個使用?Python?結(jié)合?Tkinter?和?PyAutoGUI?開發(fā)的精確截圖工具,需要的朋友可以參考下
    2025-03-03
  • pytorch中tensor的合并與截取方法

    pytorch中tensor的合并與截取方法

    今天小編就為大家分享一篇pytorch中tensor的合并與截取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中異常處理的5個最佳實踐分享

    Python中異常處理的5個最佳實踐分享

    異常處理是編寫健壯可靠的?Python?代碼的一個基本方面,這篇文章為大家整理了Python中異常處理的5個最佳實踐,文中的示例代碼講解詳細(xì),希望對大家有所幫助
    2024-01-01
  • 詳解Python字典的運(yùn)算

    詳解Python字典的運(yùn)算

    這篇文章主要為大家介紹了Python字典的運(yùn)算 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python簡單的GUI程序示例詳解

    Python簡單的GUI程序示例詳解

    這篇文章主要為大家詳細(xì)介紹了Python簡單的GUI程序示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python中__init__和__new__的區(qū)別詳解

    Python中__init__和__new__的區(qū)別詳解

    這篇文章主要介紹了Python中__init__和__new__的區(qū)別詳解,并著重說明了__new__的作用及什么情況下使用__new__,需要的朋友可以參考下
    2014-07-07
  • python3.8中關(guān)于sklearn問題(win10)

    python3.8中關(guān)于sklearn問題(win10)

    這篇文章主要介紹了python3.8中關(guān)于sklearn問題(win10),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論

论坛| 读书| 大名县| 南溪县| 连南| 蓬溪县| 山阳县| 贵溪市| 宾川县| 饶阳县| 若尔盖县| 泽库县| 将乐县| 石景山区| 大埔县| 平果县| 喀喇沁旗| 合山市| 拜城县| 新巴尔虎左旗| 广南县| 平果县| 文登市| 叙永县| 望城县| 会同县| 宝鸡市| 清丰县| 新田县| 阿拉善盟| 延寿县| 永春县| 土默特右旗| 建水县| 普陀区| 平舆县| 宝丰县| 云霄县| 淳安县| 河间市| 秦安县|