OpenCV半小時(shí)掌握基本操作之直方圖_第1頁(yè)
OpenCV半小時(shí)掌握基本操作之直方圖_第2頁(yè)
OpenCV半小時(shí)掌握基本操作之直方圖_第3頁(yè)
OpenCV半小時(shí)掌握基本操作之直方圖_第4頁(yè)
OpenCV半小時(shí)掌握基本操作之直方圖_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第OpenCV半小時(shí)掌握基本操作之直方圖目錄概述直方圖直方圖+mask直方圖均衡化【OpenCV】高手勿入!半小時(shí)學(xué)會(huì)基本操作直方圖

概述

OpenCV是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺(jué)庫(kù),支持多語(yǔ)言,功能強(qiáng)大.今天小白就帶大家一起攜手走進(jìn)OpenCV的世界.(第20課)

直方圖

原圖:

cv2.calcHist()可以幫助我們統(tǒng)計(jì)像素并得到直方圖.

格式:

calcHist(images,channels,mask,histSize,ranges,hist=None,accumulate=None)

參數(shù):

images:輸入圖像

channels:顏色通道

mask:掩模

histSize:bin的數(shù)目,用中括號(hào)括起來(lái)

ranges:像素范圍[0,256]

例1(灰度圖統(tǒng)計(jì)直方圖):

importcv2

frommatplotlibimportpyplotasplt

plt.style.use("fivethirtyeight")

#讀取圖片,并轉(zhuǎn)換成灰度圖

img=cv2.imread("girl.jpg",0)

#獲取直方圖

hist=cv2.calcHist([img],[0],None,[256],[0,256])

print(hist)

#直方圖展示

plt.figure(figsize=(12,6))

plt.plot(hist)

plt.title("histofimage")

plt.show()

輸出結(jié)果:

例2(RGB三通道直方圖):

importcv2

frommatplotlibimportpyplotasplt

plt.style.use("fivethirtyeight")

plt.figure(figsize=(12,6))

#讀取圖片

img=cv2.imread("girl.jpg")

#顏色通道

color=["b","g","r"]

#獲取直方圖

fori,cinenumerate(color):

hist=cv2.calcHist([img],[i],None,[256],[0,256])

plt.plot(hist,color=c)

#直方圖展示

plt.legend(["BChannel","GChannel","RChannel"])

plt.title("RGBhistofimage")

plt.show()

輸出結(jié)果:

直方圖+mask

例子:

importnumpyasnp

importcv2

frommatplotlibimportpyplotasplt

plt.style.use("fivethirtyeight")

#讀取圖片,并轉(zhuǎn)換成灰度圖

img=cv2.imread("girl.jpg",0)

#創(chuàng)建mask

mask=np.zeros(img.shape,np.uint8)

mask[280:1000,420:1500]=255

#獲取mask后的圖像

masked_img=cv2.bitwise_and(img,img,mask=mask)

#直方圖

hist_full=cv2.calcHist([img],[0],None,[256],[0,256])

hist_mask=cv2.calcHist([img],[0],mask,[256],[0,256])

#圖片展示

f,ax=plt.subplots(2,2,figsize=(12,9))

ax[0,0].imshow(img,'gray')

ax[0,0].set_title("originalimage")

ax[0,1].imshow(mask,'gray')

ax[0,1].set_title("mask")

ax[1,0].imshow(masked_img,'gray')

ax[1,0].set_title("maskedimage")

ax[1,1].plot(hist_full)

ax[1,1].plot(hist_mask)

ax[1,1].set_title("originalvsmaskedhist")

plt.show()

輸出結(jié)果:

直方圖均衡化

直方圖均衡化(HistogramEqualization)是一種增強(qiáng)圖片對(duì)比度的方法.將一副圖像的直方圖分布變成近似均勻分布.

格式:

cv2.equalizeHist(src,dst=None)

例子:

importcv2

frommatplotlibimportpyplotasplt

plt.style.use("fivethirtyeight")

#讀取圖片,并轉(zhuǎn)換成灰度圖

img=cv2.imread("girl.jpg",0)

#均衡化

img_equ=cv2.equalizeHist(img)

#直方圖

f,ax=plt.subplots(2,2,figsize=(16,16))

ax[0,0].imshow(img,"gray")

ax[0,0].set_title("before")

ax[0,1].imshow(img_e

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論