2016-08-20 2 views
1

스테레오 비전 (2 IR 카메라)에서 파생 된 3D 점 좌표를 생성하는 작은 파이썬 스크립트를 만들었습니다. 3D 좌표가 정확합니다.3D 점의 문제 점 2D 대응

이제 제 3의 RGB 카메라가 있는데 보정 매트릭스가 주어졌습니다. K는 내장 함수의 행렬이고 R, t는 외인 매개 변수의 구성 요소입니다. RGB 이미지는 1280x800입니다.하지만 적절한 서신을 설정할 수는 없습니다.

프로젝션 수식을 사용하여 Pcolor = K [R | t] 으로 프로젝션 매트릭스 "Pcolor"를 유도하고 다음과 같이 XYZ 3D 좌표 ("Pworld")를 다시 투영하는 것이 쉬운 것으로 생각했습니다. enter image description here

나는 (u, v, w)를 얻을 것으로 예상되므로 w로 나누는 결과를 정규화했습니다.

#import numpy as np 
ExtrColor = np.concatenate((Rcolor,Tcolor), axis = 1) 
#Rcolor is the 3x3 rotation matrix, Tcolor the column translation array 
# after calculation of X,Y,Z 
Pworld = np.matrix([[X], [Y], [Z], [1]]) 
Pcolor = np.dot((np.dot(Kcolor,ExtrColor)),Pworld) 
u = round(Pcolor[0,0]/Pcolor[2,0]) 
v = round(Pcolor[1,0]/Pcolor[2,0]) 

그럼 난 12000 대신 화상 (X 및 Y < 1,280 < 800)의 범위가되는보다 UV 값을 구하였습니다.

문제점을 파악할 수 없습니다. 누구도 비슷한 문제가 있습니까? XYZ 좌표에서 스케일 인자의 문제에 대해 생각하지 않는다. 문제의 공식화에 비효율적이어야한다. np.dot을 사용하는 데 문제가 있습니까? 나는 그것이 작은 오류다고 확신하지만 나는 그것을 볼 수 없다.

답장을 보내 주셔서 감사합니다 (영어로는 불쌍합니다)!

스택 오버플로에서 비슷한 질문을 확인했습니다. here 문제는 비슷하지만 방법이 다릅니다. IR (두 개의 카메라 교정 : 문제는이 것 같다 : 가능한 경우

PS는 이번에는 내가

답변

0

업데이트는, OpenCV의 또는 기능의 다른 라이브러리를 사용하여 결과를 얻을 싶지 않아 및 RGB)는 동일한 기준으로 제작되지 않았으며 둘 다 사실로 받아 들여졌습니다.