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

Opencv中的cv2.calcHist()函數(shù)的作用及返回值說明

 更新時間:2022年11月09日 10:22:39   作者:S.C.Dragon  
這篇文章主要介紹了Opencv中的cv2.calcHist()函數(shù)的作用及返回值說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

在討論其返回值前,我們先來介紹以下calcHist()函數(shù)的用法:

cv2.calcHist()函數(shù)

cv2.calcHist()函數(shù)的作用

通過直方圖可以很好的對整幅圖像的灰度分布有一個整體的了解,直方圖的x軸是灰度值(0~255),y軸是圖片中具有同一個灰度值的點的數(shù)目。

而calcHist()函數(shù)則可以幫助我們統(tǒng)計一幅圖像的直方圖

cv2.calcHist(images,channels,mask,histSize,ranges)
  • images: 原圖像圖像格式為 uint8 或 ?oat32。當(dāng)傳入函數(shù)時應(yīng) 用中括號 [] 括來例如[img]
  • channels: 同樣用中括號括來它會告函數(shù)我們統(tǒng)幅圖 像的直方圖。如果入圖像是灰度圖它的值就是 [0]如果是彩色 圖像 的傳入的參數(shù)可以是 [0][1][2] 它們分別對應(yīng)著 BGR。
  • mask: 掩模圖像。統(tǒng)整幅圖像的直方圖就把它為 None。但是如果你想統(tǒng)圖像某一分的直方圖的你就制作一個掩模圖像并使用它。
  • histSize:BIN 的數(shù)目。也應(yīng)用中括號括來
  • BINS: 上面的直方圖顯示了每個像素值的像素數(shù),即從0到255。即您需要256個值才能顯示上述直方圖。但是請考慮一下,如果您不需要單獨查找所有像素值的像素數(shù),而是在像素值間隔內(nèi)查找像素數(shù),該怎么辦?例如,您需要找到介于 0 到 15 之間的像素數(shù),然后是 16 到 31、...、240 到 255。您只需要 16 個值來表示直方圖。
  • 因此,只需將整個直方圖拆分為 16 個子部分,每個子部分的值就是其中所有像素計數(shù)的總和。這每個子部分都稱為"BIN"。在第一種情況下,條柱數(shù)為256(每個像素一個),而在第二種情況下,它只有16。BINS 在 OpenCV 文檔中由術(shù)語histSize表示。
  • ranges: 像素值范圍常為 [0 256]

示例:

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
img = cv2.imread('cat.jpg', 0)  # 0表示灰度圖
hist = cv2.calcHist([img], [0], None, [256], [0, 256])
# print(hist)
# print(hist[175])
# print(type(hist))
plt.hist(img.ravel(),256);
#print(img.ravel())
plt.show()

輸出結(jié)果:

示例2:多通道圖的“直方圖”

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
 
img = cv2.imread('cat.jpg') 
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]) 
    print(i,col)

輸出結(jié)果:

到這里完整的直方圖就這樣子繪制出來了,但是大家也許會對calcHist的返回值有疑問,到底返回了什么才能畫出來這樣的圖像呢?下面我們則來討論該函數(shù)的返回值

cv2.calcHist()函數(shù)的返回值

對于hist = cv2.calcHist([img],[0],None,[256],[0,256])中,hist是一個256*1的矩陣,每一個值代表了每個灰度值對應(yīng)的像素點數(shù)目

print(type(hist))
<class 'numpy.ndarray'>

輸出的結(jié)果表示這是一個多維數(shù)組

print(hist)

[[1.000e+00]
 [0.000e+00]
 [2.000e+00]
 [0.000e+00]
       .......
 [2.010e+02]
 [2.180e+02]
 [2.160e+02]
 [2.660e+02]
 [3.350e+02]
 [3.110e+02]
 [4.670e+02]]

經(jīng)計算,共有256個值,即可以輸出hist[0]到hist[255]。

整個hist[i]則表示灰度值

print(hist[175],hist[255])

[3181.] [467.]

通過直方圖可看出輸出的結(jié)果就是每一個灰度值對應(yīng)的像素數(shù)目

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

岑溪市| 广东省| 南平市| 于都县| 台东市| 平昌县| 榆中县| 黄大仙区| 西峡县| 白城市| 奎屯市| 广水市| 镶黄旗| 曲阜市| 聂荣县| 广水市| 宿迁市| 弋阳县| 剑川县| 临朐县| 河间市| 衡阳市| 泊头市| 西平县| 阿荣旗| 太保市| 马龙县| 德安县| 安顺市| 肇庆市| 清丰县| 宜兴市| 平舆县| 梁平县| 芮城县| 万安县| 彭泽县| 什邡市| 铜鼓县| 芜湖县| 阿瓦提县|