簡體   English   中英

如何在不使用 numpy 直方圖的情況下制作直方圖

[英]How can I make histogram without using numpy histogram

import cv2
import numpy as np
import matplotlib.pyplot as plt

def my_histogram(img, bins, range):
    hist = 
    return hist

我需要填寫 hist 而不使用 np.histogram 或其他直方圖 function

img = cv2.imread('sample.jpg')
img_g = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hist = my_histogram(img_g, 256, [0,256])

plt.plot(hist)
plt.xlim([0,256])
plt.show()

np.unique是一個效率較低的直方圖實用程序,因為它對數據進行排序而不是直接處理它:

bins, hist = np.unique(img.ravel(), return_counts=True)

我不會為您提供確切的答案,因為這看起來像一個家庭作業。 基本上,灰度圖像中的每個像素都有一個與之關聯的數字,范圍從 0 到 255。您要做的是對具有相同值的像素數求和(有多少值為 0,有多少值為 1 , 有多少個值為 2 等)。 您可能可以使用 numpy 來幫助您,而無需調用直方圖 function(例如查看此鏈接)。

然后,您可以使用 matplotlib plot 條形圖來顯示您的直方圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM