有什么方法可以选择由线条图像形成的直方图的正确峰值吗?

时间:2019-06-26 08:52:02

标签: python opencv scipy

我有一些代码可以对图像进行直方图绘制。我目前正在使用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()
...

这是带有峰的输出直方图:

output

假设我只希望这些值大于20,但由于每个图像的限制都不同,因此无法对其进行硬编码。

1 个答案:

答案 0 :(得分:0)

使用突出数= 30进行了尝试,并且有效。消除噪音并获得良好效果。

peaks, _ = find_peaks(hist,prominence=30)

需要进行突出度和距离度量的调整才能获得列表中的最佳峰。