2017-02-01 12 views
2

Delaunay 삼각 측량을 Python 3.5.2 및 OpenCV 3.1을 사용하여 수행하려고합니다. cv2.cv2.Subdiv2D(rect) 함수를 사용하려하지만 Subdiv 개체에 점을 추가 할 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?Delaunay Triangulation with Python and OpenCV

OpenCV의 오류 :

import numpy as np 
import cv2 

point = np.array([[1, 1]]) 
rect = (0, 0, 10, 10) 

# Create an instance of Subdiv2D 
subdiv = cv2.Subdiv2D(rect[0]) 
subdiv.insert(point) 

그것은이 메시지를 던지고있다 어설 션 실패 (() 채널을 == CV_MAT_CN (DTYPE)) 사항 copyTo에서, 파일/사용자/젠킨스/miniconda/1/64/conda- bld/work/opencv-3.1.0/modules/core/src/copy.cpp 줄 257

libC++ abi.dylib : cv :: Exception :/Users/jenkins/miniconda 유형의 캐치되지 않는 예외로 종료 /1/x64/conda-bld/work/opencv-3.1.0/modules/core/src/copy.cpp:257 : 오류 : (-215) channels() == 함수의 CV_MAT_CN (dtype) copyTo

종료 코드 134 (신호 6에 의해 중단 된 프로세스 : SIGABRT)로 프로세스가 완료되었습니다.

답변

1

틀릴 수도 있지만 잘못 입력하면 안됩니다 : point = np.array([[1, 1]])? 당신이하는 일은 포인트 배열이 아닌 값 1과 1을 가진 배열을 선언하는 것입니다.

편집 :

이 튜플로 포인트를 사용해보십시오 :

points_list = [] 
points_list.append((1,1)) 

출처 : 거기에 내가 배열의 한 지점이있는 경우에는 차이가 없지만, http://www.learnopencv.com/delaunay-triangulation-and-voronoi-diagram-using-opencv-c-python/

+0

당신의 접근 방식이 더 낫다 그래서 나는 나의 질문을 편집했다. 하지만 내 문제를 해결하지 않습니다 – hory

+1

편집 내 대답 – NAmorim

+0

고마워요 !! 그것은 마침내 작동합니다. 어떻게이 아이디어를 얻었습니까? 필자는 항상 튜플과리스트의 차이점은리스트가 동적이라는 것을 생각했다. – hory