我有一些代码可以对图像进行直方图绘制。我目前正在使用scipy方法find_peaks
来查找峰值,但它也在检测一些冗余值。这是我正在使用的代码:
from scipy.signal import find_peaks
...
hist = cv2.reduce(threshed,1, cv2.REDUCE_AVG).reshape(-1)
peaks, _ = find_peaks(hist)
plt.figure(figsize=(20,20))
plt.plot(hist)
plt.plot(peaks, hist[peaks], "x")
plt.show()
...
这是带有峰的输出直方图:
假设我只希望这些值大于20,但由于每个图像的限制都不同,因此无法对其进行硬编码。
答案 0 :(得分:0)
使用突出数= 30进行了尝试,并且有效。消除噪音并获得良好效果。
peaks, _ = find_peaks(hist,prominence=30)
需要进行突出度和距离度量的调整才能获得列表中的最佳峰。