2017-05-03 31 views
0

我想要计算轮廓/球的平均大小。我用arclength计算球的周长,然后找出直径。我的问题是轮廓值不断变化。如何设置python numpy数组大小限制

我想将直径的前10个值输入到np.array中,并计算用作对象大小的平均值。我是python的新手,一直在尝试多种方法,但还没有找到解决方案来设置大小或提取前10个数组元组。我已经尝试拉你的第一个10使用我在范围内。

我当前的代码是:

def average_diam (diameter): 
    av_diameter = np.array(diameter) 
    for i in np.arange(1, len(av_diameter)): 
      for i in av_diameter >= 10: 
        average = np.mean() 
        print(average) 


perimeter = cv2.arcLength(c, True) 
diameter = perimeter/pi 
average = average_diam(diameter) 

感谢您的帮助!

+0

直径在此情况是一个'float',所以你的'numpy'数组的长度为1.假设它是一个数组,你可以像'for i in range(0,10:av_diameter = diameter [i]'那么只需打印'np .mean(av_diameter)' – quantik

回答

0

假设直径你根本就做类似

def average_diam(x): 
    av_diameter = np.zeros(10) 
    for i in range(0, 10): 
     av_diameter[i] = x[i] 
    return np.mean(av_diameter) 

average_diam(diameter) 

元素的列表你真的可以只是做了这样的一个衬垫,而不调用函数:

average = np.mean(np.asarray(diameter[0:10]))

+0

我收到了: 'float'对象在两种方法上都没有属性'__getitem__'错误? –

+0

然后'直径'不是一个列表。这是一个数字。在开始扔掉它们之前,确保你知道什么是对象/变量。 – hpaulj

+0

哦,我明白了!当我打印直径时,数值不断变化。所以我想通过把它们放在一个数组中它会存储所有不同的尺寸 –