2017-05-03 3 views
0

컨투어/볼의 평균 크기를 계산하려고합니다. 저는 arclength를 사용하여 공의 둘레를 계산 한 다음 지름을 알아 냈습니다. 내 문제는 윤곽 값이 끊임없이 변화한다는 것입니다.python numpy 배열 크기 제한을 설정하는 방법

직경의 처음 10 개 값을 np.array에 입력하고 내 개체 크기로 사용할 평균값을 계산하고 싶습니다. 여러 가지 방법을 시도했지만 python을 처음 사용했지만 크기를 설정하거나 처음 10 개의 배열 튜플을 추출하는 솔루션을 찾지 못했습니다. 나는 범위 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]')와 같이 할 수 있습니다. .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

아하이오! 직경을 인쇄 할 때 값이 계속 변경되었습니다. 그래서 배열에 넣어두면 모든 다른 크기를 저장할 수 있다고 생각했습니다. –

관련 문제