python實現圖像直方圖


目錄:

(一)直方圖的使用

 

 

正文:

(一)直方圖的使用

 1 from matplotlib import pyplot as plt
 2 def plot_demo(image):
 3     print(image.ravel())
 4     plt.hist(image.ravel(),256,[0,256]) #ravel將圖像3維轉一維數組,便於統計頻率
 5     # 統計為256個bin,顯示0-255bin,意思是全部顯示,我們可以設置只顯示一部分
 6     plt.show()
 7  8 src = cv.imread("./1.png")  #讀取圖片
 9 cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)    #創建GUI窗口,形式為自適應
10 cv.imshow("input image",src)    #通過名字將圖像和窗口聯系
11 image_hist(src)
12 cv.waitKey(0)   #等待用戶操作,里面等待參數是毫秒,我們填寫0,代表是永遠,等待用戶操作
13 cv.destroyAllWindows()  #銷毀所有窗口

1 def image_hist(image):
2     color = ("blue","green","red")
3     for i,color in enumerate(color):
4         hist = cv.calcHist([image],[i],None,[256],[0,256])
5         plt.plot(hist,color=color)  #傳入直方圖數據,設置顯示顏色
6         plt.xlim([0,256])   #設定圖標的上下限,默認是全選,可不用設置
7     plt.show()
1.def calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None): # real signature unknown; restored from __doc__

images:輸入圖像
channels:需要統計直方圖的第幾通道
mask:掩膜,,計算掩膜內的直方圖 ...Mat()
histSize:指的是直方圖分成多少個區間,就是 bin的個數
ranges: 統計像素值得區間
hist:輸出的直方圖數組
accumulate=false:在多個圖像時,是否累計計算像素值得個數

 參考:

https://www.cnblogs.com/ssyfj/p/9270333.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM