我打算在任何灰度影像分布的極值點跳過影像的一些直方圖。左側的極值點由位于 5% 區域內的所有直方圖表示,而右側的極值點由位于整個分布的 95% 以上區域內的所有直方圖表示 這是我結束的一些代碼
image = cv2.imread('right.' str(i) '.png')
#print(image)
hist = cv2.calcHist([image], [0], None, [256], [0,256])
lower = round(0.05*len(hist))
upper = round(0.95*len(hist))
lower_hist_list = hist[0:lower]
upper_hist_list = hist[upper:len(hist)]
lower_hist, upper_hist
remaining_region =hist[index_above_lower : index_before_upper]
我想要的是上下邊界之間的直方圖5%<=IMAGE<=95%?
uj5u.com熱心網友回復:
根據我對您問題的理解;您想避免直方圖尾部的像素強度。必須剪裁低于 5% 和高于 95% 分布的像素。
首先,使用 256 個 bin 獲取灰度影像的直方圖:
hist = cv2.calcHist([img],[0],None,[256],[0,256])

hist存盤值在 [0 - 255] 之間的像素的數量。
- 256 ~ 12 的 5%
- 256 ~ 243 的 95%
根據您的標準,我們需要將像素值保持在 [12 - 243] 范圍內。我們可以
看上面的情節:
- 低于 12 的像素值已被賦值為 12
- 高于 243 的像素值已分配為值 243
因此,您可以在圖中看到這兩個值的峰值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/473336.html
