2014-09-25 2 views
0

등고선에 의해 제한된 면적을 계산해야합니다.matplotlib에 의해 생성 된 윤곽선에 대해 opencv로 윤곽선 영역 계산

Z = z_func(X, Y, Ql, k[i,j], B) 
cs = plt.contour(X, Y, Z,[IncT]) 
v = cs.collections[0].get_paths()[0].vertices 
xy = [] 
for vv in v: 
    xy.append(vv[0]) 
cnt = np.array(xy) 
area = cv2.contourArea(cnt) 

나는이 오류가 : ...... \ 나는 윤곽 라인의 정점을 얻을하기 matplotlib를 사용하지만, 나는 OpenCV의에서 contourArea 방법에 대한 유효한 입력으로 변환 할 수 없습니다입니다 opencv-2.4.9.1 \ modules \ imgproc \ src \ contours.cpp : 1904 : 오류 : (-215) contour.checkVector (2)> = 0 & & (contour.depth() == CV_32F || contour.depth 기능 이력서에) == CV_32S) :: contourArea

: 라인을 읽을 때 EOF가

이 사람이 나를 도울 수 ? 미리 감사드립니다 !!!

답변

0

마지막으로, 나는 cv2.contourArea 메소드를 사용하지 않았습니다. 꼭지점의 Y 구성 요소 만 가져 와서 절대 값을 합계하고 그리드 크기를 곱하십시오.

x = arange(-1.0,10.0,0.05) 
y = arange(-1.0,1.0,0.05) 

X,Y = meshgrid(x, y) # grid of point 

cs = plt.contour(X, Y, Z,[IncT]) 
p = cs.collections[0].get_paths()[0] 
v = p.vertices 
y = v[:,1] 
s[i,j]=sum(abs(y))*0.05 
관련 문제