问题描述
我正在尝试计算Python中图像的经验累积分布。最佳做法是什么?而且我还需要将结果存储在数组中,以便可以在分析的后续步骤中使用它。
我正在使用此功能,但不确定这样做是否正确:
`def ecdf(data):
x = np.sort(data.flatten())
n = x.size
y = np.arange(1,n+1) / n
return (x,y)`
解决方法
这是我现在正在执行的操作,并且可以正常工作(对于灰度图像):
- 对于高斯正态分布:
`
def Ghist(image):
'''compute eCDF of an image'''
data_flatten = image.flatten()
data_sort = np.sort(data_flatten)
values,bins = np.histogram(data_sort,normed=True)
return (bins,values)
`
- 对于累积分布:
`
def ecdf(image):
'''compute eCDF of an image'''
data_flatten = image.flatten()
data_sort = np.sort(data_flatten)
values,normed=True)
data_cum = np.cumsum(values)
return (bins,data_cum)
`