2015-07-21 24 views
0

我正在Python中使用二進制圖像,我想繪製一個直方圖,顯示/返回每行黑色像素的數量,而不是總數。到目前爲止,這是行不通的:使用Python的每行黑色像素的繪圖數

hist = cv2.calcHist([binary_image], [0], None, [height], [0, weight])  

plt.title("Histogram")  

plt.plot(hist) 

plt.xlim([0,weight]) 

plt.show() 

我做到了在MATLAB,這是工作正常

im_hist = hist(t_image, 2); 

plot(1:size(im_hist,2),im_hist(2,:)) 

回答

0

假設binary_image是一個二維數組,這將工作:

counts = np.sum(binary_image==0, axis=1) 

plt.plot(counts) 

然而,你的MATLAB函數不能完成你所描述的一般方法。它將您的數據分成兩個範圍,然後統計每個範圍有多少個數據點。如果您的圖片只有兩個級別,這隻能正常工作。如果不是,那麼你的「黑色」將包括黑色以外的值。等效的python函數是這樣的:

counts = np.sum(binary_image<binary_image.max()/2., axis=1) 

plt.plot(counts) 
+0

非常感謝你,它完美的作品:) – greenlasagna

相關問題