당신의 생각에 뭔가 빠져 있다고 생각합니다.
카메라 매트릭스 K 및 dist. coefficent D는 undistortion을 만들기위한 매개 변수입니다 (렌즈가 어안과 같이 이미지를 왜곡하는 경우). 그것들은 내장 카메라 매개 변수라고 불리는 것입니다.
컴퓨터 비전에서 컴퓨터 그래픽으로 용어를 변경하면 뷰의 절두체를 정의하는 데 사용되는 매개 변수가 사용되며, 예를 들어 카메라의 초점 길이를 가져 오는 데 사용됩니다.
하지만 프로젝션 작업에는 충분하지 않습니다.
투영의 경우 컴퓨터 그래픽 용어 (예 : OpenGL)에서 생각하면 모델 뷰 투영 행렬이 필요합니다. 모델 행렬은 세계에서 객체의 위치를 지정하는 행렬입니다. 뷰 행렬은 카메라의 위치를 지정하고 투영 행렬은 절두체 (초점 각, 원근 왜곡 등)를 지정합니다.
모델 포인트를 3d에서 2d (또는 viceversa)로 변환하는 방법을 알고 싶다면 프로젝션과 뷰 매트릭스가 필요합니다 (모델 매트릭스가 있어야합니다. 스타트). 그리고 컴퓨터 비전에서 뷰 매트릭스는 estrinsic 매개 변수라고합니다.
그래서 세계에서 카메라의 위치 인 estrinsic 매개 변수도 필요합니다. 예를 들어, 해당 매개 변수는 rvec
이고 tvec
은 cv:: projectPoints
입니다.
계산하려는 경우 정확히 카메라의 화면에 알려진 2 차원 투영과 결합 된 일부 알려진 3d 점에서이 기능은 원하는 것의 반대가되는 cv::solvePnP
의 결과입니다. 당신은 estrinsic 매개 변수 (어떤 opengl-opencv-augmented-reality- 어떤 응용 프로그램이든 cv::Rodrigues
을 통해보기 매트릭스를 얻을 수 있습니다).
마지막주의 사항 : 카메라로 촬영 한 모든 사진에 내재적 매개 변수가 고정되어 있지만 (초점 길이는 변경하지 않은 상태에서) 신진 촬영을 위해 카메라를 움직일 때마다 estrinisc 매개 변수가 변경됩니다 다른 시점에서 그림을 볼 수 있습니다 (즉, 이것은 관점을 변경하므로 3D-2D 투영을 찾으려고합니다)
희망이 도움이 될 수 있습니다!
새로운 기능이 있습니까? 도움이 되니? – nkint