目錄:
(一)直方圖的使用
正文:
(一)直方圖的使用
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