当 cdf 表示从 cv2.calcHist 构建的累积分布函数时,Cdf / Cdf[-1] 会做什么?

What does Cdf / Cdf[-1] do when cdf represents a Cumulative distribution function built from a cv2.calcHist?

我正在尝试破译由自由职业者完成的一段代码,但我一直卡在这一部分。我不能详细介绍这段代码,但我可以说他正在 def 运行(self) 中创建一个新变量。我们将其命名为"Result"。然后取一个 np.cumsum(直方图) 我们称它为 "HistCumSum" 并执行以下操作 --> Result = HistCumSum / HistCumSum[-1]

我搜索了 google 大约一个星期,并尝试打印出数值/手算,但没有任何意义

 HistCumSum = np.cumsum(Hist)

 Result = HistCumSum / HistCumSum[-1]

我无法解释结果的用途

HistCumSum[-1] 是数组 HistCumSum 中的最终值。因为 HistCumSum 是一个累积总和,我们可以将 Result = HistCumSum / HistCumSum[-1] 视为 归一化 从累积 频率 到累积 分布函数.

看看 HistHistCumSumResult 的样子可能有助于理清思路:

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

x = np.linspace(-2, 2, num=100)
# Evaluate pdf in lieu of actual data
Hist = norm.pdf(x)

# Compute cumulative sum
HistCumSum = np.cumsum(Hist)
# Normalise cumulative sum to produce cdf
Result = HistCumSum / HistCumSum[-1]

fig, ax = plt.subplots(1, 3, figsize=[7, 3])
ax[0].plot(x, Hist)
ax[1].plot(x, HistCumSum)
ax[2].plot(x, Result)
ax[0].set_title('Hist')
ax[1].set_title('HistCumSum')
ax[2].set_title('Results (CDF)')
fig.tight_layout()