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

python數(shù)字圖像處理實現(xiàn)直方圖與均衡化

 更新時間:2018年05月04日 13:42:24   作者:denny402  
在圖像處理中,直方圖是非常重要,也是非常有用的一個處理要素。這篇文章主要介紹了python數(shù)字圖像處理實現(xiàn)直方圖與均衡化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在圖像處理中,直方圖是非常重要,也是非常有用的一個處理要素。

在skimage庫中對直方圖的處理,是放在exposure這個模塊中。

1、計算直方圖

函數(shù):skimage.exposure.histogram(image,nbins=256)

在numpy包中,也提供了一個計算直方圖的函數(shù)histogram(),兩者大同小義。

返回一個tuple(hist, bins_center), 前一個數(shù)組是直方圖的統(tǒng)計量,后一個數(shù)組是每個bin的中間值

import numpy as np
from skimage import exposure,data
image =data.camera()*1.0
hist1=np.histogram(image, bins=2)  #用numpy包計算直方圖
hist2=exposure.histogram(image, nbins=2) #用skimage計算直方圖
print(hist1)
print(hist2)

輸出:

(array([107432, 154712], dtype=int64), array([ 0. , 127.5, 255. ]))
(array([107432, 154712], dtype=int64), array([ 63.75, 191.25]))

分成兩個bin,每個bin的統(tǒng)計量是一樣的,但numpy返回的是每個bin的兩端的范圍值,而skimage返回的是每個bin的中間值

2、繪制直方圖

繪圖都可以調(diào)用matplotlib.pyplot庫來進行,其中的hist函數(shù)可以直接繪制直方圖。

調(diào)用方式:

復(fù)制代碼 代碼如下:
n, bins, patches = plt.hist(arr, bins=10, normed=0, facecolor='black', edgecolor='black',alpha=1,histtype='bar')

hist的參數(shù)非常多,但常用的就這六個,只有第一個是必須的,后面四個可選

arr: 需要計算直方圖的一維數(shù)組

bins: 直方圖的柱數(shù),可選項,默認為10

normed: 是否將得到的直方圖向量歸一化。默認為0

facecolor: 直方圖顏色

edgecolor: 直方圖邊框顏色

alpha: 透明度

histtype: 直方圖類型,‘bar', ‘barstacked', ‘step', ‘stepfilled'

返回值 :

n: 直方圖向量,是否歸一化由參數(shù)normed設(shè)定

bins: 返回各個bin的區(qū)間范圍

patches: 返回每個bin里面包含的數(shù)據(jù),是一個list

from skimage import data
import matplotlib.pyplot as plt
img=data.camera()
plt.figure("hist")
arr=img.flatten()
n, bins, patches = plt.hist(arr, bins=256, normed=1,edgecolor='None',facecolor='red') 
plt.show()

其中的flatten()函數(shù)是numpy包里面的,用于將二維數(shù)組序列化成一維數(shù)組。

是按行序列,如

mat=[[1 2 3

    4 5 6]]

經(jīng)過 mat.flatten()后,就變成了

mat=[1 2 3 4 5 6]

3、彩色圖片三通道直方圖

一般來說直方圖都是征對灰度圖的,如果要畫rgb圖像的三通道直方圖,實際上就是三個直方圖的疊加。

from skimage import data
import matplotlib.pyplot as plt
img=data.lena()
ar=img[:,:,0].flatten()
plt.hist(ar, bins=256, normed=1,facecolor='r',edgecolor='r',hold=1)
ag=img[:,:,1].flatten()
plt.hist(ag, bins=256, normed=1, facecolor='g',edgecolor='g',hold=1)
ab=img[:,:,2].flatten()
plt.hist(ab, bins=256, normed=1, facecolor='b',edgecolor='b')
plt.show()

其中,加一個參數(shù)hold=1,表示可以疊加

4、直方圖均衡化

如果一副圖像的像素占有很多的灰度級而且分布均勻,那么這樣的圖像往往有高對比度和多變的灰度色調(diào)。直方圖均衡化就是一種能僅靠輸入圖像直方圖信息自動達到這種效果的變換函數(shù)。它的基本思想是對圖像中像素個數(shù)多的灰度級進行展寬,而對圖像中像素個數(shù)少的灰度進行壓縮,從而擴展取值的動態(tài)范圍,提高了對比度和灰度色調(diào)的變化,使圖像更加清晰。

from skimage import data,exposure
import matplotlib.pyplot as plt
img=data.moon()
plt.figure("hist",figsize=(8,8))

arr=img.flatten()
plt.subplot(221)
plt.imshow(img,plt.cm.gray) #原始圖像
plt.subplot(222)
plt.hist(arr, bins=256, normed=1,edgecolor='None',facecolor='red') #原始圖像直方圖

img1=exposure.equalize_hist(img)
arr1=img1.flatten()
plt.subplot(223)
plt.imshow(img1,plt.cm.gray) #均衡化圖像
plt.subplot(224)
plt.hist(arr1, bins=256, normed=1,edgecolor='None',facecolor='red') #均衡化直方圖

plt.show()

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

相關(guān)文章

  • Python淺析生成器generator的使用

    Python淺析生成器generator的使用

    生成器generator在循環(huán)過程中,按照某種算法推算數(shù)據(jù),不必創(chuàng)建容器存儲完整的結(jié)果,從而節(jié)省內(nèi)存空間。數(shù)據(jù)量越大,優(yōu)勢越明顯。以上作用也稱之為延遲操作或惰性操作,通俗的講就是在需要的時候才計算結(jié)果,而不是一次構(gòu)建出所有結(jié)果
    2022-07-07
  • Python接口測試文件上傳實例解析

    Python接口測試文件上傳實例解析

    這篇文章主要介紹了Python接口測試文件上傳實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • twilio python自動撥打電話,播放自定義mp3音頻的方法

    twilio python自動撥打電話,播放自定義mp3音頻的方法

    今天小編就為大家分享一篇twilio python自動撥打電話,播放自定義mp3音頻的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python找出因數(shù)與質(zhì)因數(shù)的方法

    python找出因數(shù)與質(zhì)因數(shù)的方法

    這篇文章主要介紹了python找出因數(shù)與質(zhì)因數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python寫入數(shù)據(jù)到csv或xlsx文件的3種方法

    python寫入數(shù)據(jù)到csv或xlsx文件的3種方法

    這篇文章主要為大家詳細介紹了python寫入數(shù)據(jù)到csv或xlsx文件的3種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python下調(diào)用pytesseract識別某網(wǎng)站驗證碼的實現(xiàn)方法

    python下調(diào)用pytesseract識別某網(wǎng)站驗證碼的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猵ython下調(diào)用pytesseract識別某網(wǎng)站驗證碼的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • python如何將mat文件轉(zhuǎn)為png

    python如何將mat文件轉(zhuǎn)為png

    這篇文章主要介紹了python如何將mat文件轉(zhuǎn)為png,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python?matplotlib繪制灰度和彩色直方圖

    Python?matplotlib繪制灰度和彩色直方圖

    Matplotlib是Python的繪圖庫,它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。本文將為大家介紹如何用matplotlib繪制灰度和彩色直方圖,感興趣的朋友可以學(xué)習(xí)一下
    2021-12-12
  • OpenCV哈里斯角檢測|Harris?Corner理論實踐

    OpenCV哈里斯角檢測|Harris?Corner理論實踐

    這篇文章主要為大家介紹了OpenCV哈里斯角檢測|Harris?Corner理論實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法

    Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法

    今天小編就為大家分享一篇Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論

梁河县| 沙湾县| 松江区| 辽源市| 江油市| 海淀区| 杭州市| 南华县| 宿迁市| 安庆市| 施甸县| 循化| 桦甸市| 营山县| 五原县| 民和| 金阳县| 重庆市| 靖州| 陆河县| 新化县| 江津市| 昌平区| 汕头市| 运城市| 陆丰市| 嘉义市| 诏安县| 盐津县| 苏尼特右旗| 大同县| 仁化县| 南部县| 拜城县| 华安县| 灌阳县| 阜阳市| 金门县| 千阳县| 唐河县| 舞钢市|