2014-03-06 1 views
3

저는 OpenCV 스테레오 비전으로 작업 중이며 교정 모듈이 작동 중입니다. 디버깅을 위해 카메라 매개 변수 보정을 계산하는 방법을 시각화하고 싶습니다.이를 돕기 위해 내장 된 기능을 찾고자합니다. 나는 Matlab의 showExtrinsics()과 비슷한 것을 찾고있다. 내 자신의 시각화 작성에 대한 모든 제안/지침? 나는 OpenCV 문서에서 도움이되는 것을 찾을 수 없었다.OpenCV에서 내장/외인성 카메라 매개 변수를 시각화하는 방법은 무엇입니까?

내 내장 함수 매트릭스 :

%YAML:1.0 
M1: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 4.6716183686593592e+02, 0., 3.4685206899619874e+02, 0., 
     4.6716183686593592e+02, 2.6460277614179995e+02, 0., 0., 1. ] 
D1: !!opencv-matrix 
    rows: 1 
    cols: 5 
    dt: d 
    data: [ 1.3545958543110964e-01, -2.0383389968255977e-01, 0., 0., 0. ] 
M2: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 4.6716183686593592e+02, 0., 3.1321301298488936e+02, 0., 
     4.6716183686593592e+02, 2.7674405764548516e+02, 0., 0., 1. ] 
D2: !!opencv-matrix 
    rows: 1 
    cols: 5 
    dt: d 
    data: [ 6.8017486649835202e-02, -1.2178761345435389e-01, 0., 0., 0. ] 

내 extrinsics 매트릭스 : 내가 OpenCV의에서 그런 일이 없다고 생각

%YAML:1.0 
R: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 9.9771868227118155e-01, -7.589346316e-03, 
     6.7083281814831405e-02, 8.9579410266375625e-03, 
     9.9975067896491787e-01, -2.0453244284196821e-02, 
     -6.6911780275377294e-02, 2.1007512017769996e-02, 
     9.9753771763237242e-01 ] 
T: !!opencv-matrix 
    rows: 3 
    cols: 1 
    dt: d 
    data: [ -3.7118950200284830e+00, 2.0057520035877928e-02, 
     -1.1958455121942886e-01 ] 
R1: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 9.9498387348418538e-01, -1.2286209661821963e-02, 
     9.9278097073585744e-02, 1.3314580062505074e-02, 
     9.9986428207583911e-01, -9.7025453735457880e-03, 
     -9.9145415749623558e-02, 1.0975722350366061e-02, 
     9.9501242206050977e-01 ] 
R2: !!opencv-matrix 
    rows: 3 
    cols: 3 
    dt: d 
    data: [ 9.9946687339085338e-01, -5.4006987617013216e-03, 
     3.2199401348428379e-02, 5.0670326515128601e-03, 
     9.9993271463178834e-01, 1.0435103699094591e-02, 
     -3.2253591651478383e-02, -1.0266385049651746e-02, 
     9.9942698941122865e-01 ] 
P1: !!opencv-matrix 
    rows: 3 
    cols: 4 
    dt: d 
    data: [ 4.2226276527153402e+02, 0., 2.8740816497802734e+02, 0., 0., 
     4.2226276527153402e+02, 2.7487768363952637e+02, 0., 0., 0., 1., 
     0. ] 
P2: !!opencv-matrix 
    rows: 3 
    cols: 4 
    dt: d 
    data: [ 4.2226276527153402e+02, 0., 2.8740816497802734e+02, 
     -1.5682311212949173e+03, 0., 4.2226276527153402e+02, 
     2.7487768363952637e+02, 0., 0., 0., 1., 0. ] 
Q: !!opencv-matrix 
    rows: 4 
    cols: 4 
    dt: d 
    data: [ 1., 0., 0., -2.8740816497802734e+02, 0., 1., 0., 
     -2.7487768363952637e+02, 0., 0., 0., 4.2226276527153402e+02, 0., 
     0., -2.6926054427670321e-01, 0. ] 

답변

1

. 하지만 원칙적으로 교정 데이터를 matlab에 가져 와서 수동으로 cameraParameters 개체를 구성하면 showExtrinsics()에 전달할 수 있습니다.

+0

다음은 matlab에 데이터를 파이핑하는 것입니다 - 감사합니다! – Daryl

+0

Matlab에서 cameraCalibrator 앱을 직접 사용하지 않는 이유는 무엇입니까? – Dima

+0

저는 시각화 솔루션을 Python/C++ 코드베이스에 통합하고자했습니다. Matlab의 캘리브레이터를 사용하는 옵션이 아닙니다. 어쨌든 필자는 Matlab으로 교정 할 시간을 절약 할 수 있도록 교정 (주로 findChessBoardCorners, stereoRectify)을 계산하기 위해 소수의 OpenCV 함수 호출 만 필요합니다. 그러나 디버깅 목적으로는 Matlab 만 있으면 충분합니다. – Daryl

관련 문제