From 9f7fd1d155128e1d382654d9de1c72f19006e856 Mon Sep 17 00:00:00 2001 From: Patrick Ruoff Date: Sun, 13 Jan 2013 11:10:44 +0000 Subject: PT: Camera pitch correction for translation, prepared GUI for release git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@208 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_PT/FTNoIR_PT_Controls.ui | 101 ++++++++++--------------- FTNoIR_Tracker_PT/ftnoir_tracker_pt.cpp | 15 ++-- FTNoIR_Tracker_PT/ftnoir_tracker_pt_dialog.cpp | 6 +- FTNoIR_Tracker_PT/ftnoir_tracker_pt_dll.cpp | 2 +- 4 files changed, 52 insertions(+), 72 deletions(-) (limited to 'FTNoIR_Tracker_PT') diff --git a/FTNoIR_Tracker_PT/FTNoIR_PT_Controls.ui b/FTNoIR_Tracker_PT/FTNoIR_PT_Controls.ui index a2389f71..0174df23 100644 --- a/FTNoIR_Tracker_PT/FTNoIR_PT_Controls.ui +++ b/FTNoIR_Tracker_PT/FTNoIR_PT_Controls.ui @@ -69,17 +69,17 @@ - - + + - Whether to update the content of the VideoWidget + - Show VideoWidget + Dynamic Pose Resolution - + Sleep time @@ -89,7 +89,7 @@ - + @@ -113,20 +113,7 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + Auto-reset time @@ -136,7 +123,7 @@ - + @@ -157,17 +144,17 @@ - - + + - + Whether to update the content of the VideoWidget - Dynamic Pose Resolution + Show VideoWidget - + Qt::Horizontal @@ -180,6 +167,32 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + Reset the tracker's internal state + + + Reset + + + @@ -499,36 +512,6 @@ - - - - - - false - - - Center the tracker - - - Center - - - - - - - false - - - Reset the tracker's internal state - - - Reset - - - - - @@ -1654,7 +1637,7 @@ - <html><head/><body><p><span style=" font-weight:600;">FTNoIR PointTracker Plugin<br/>Version 1.0 beta</span></p><p><span style=" font-weight:600;">by Patrick Ruoff</span></p><p><a href="http://ftnoirpt.sourceforge.net/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Manual (external)</span></a></p></body></html> + <html><head/><body><p><span style=" font-weight:600;">FTNoIR PointTracker Plugin<br/>Version 1.0</span></p><p><span style=" font-weight:600;">by Patrick Ruoff</span></p><p><a href="http://ftnoirpt.sourceforge.net/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Manual (external)</span></a></p></body></html> true @@ -1715,17 +1698,13 @@ tabWidget sleep_spin - videowidget_check reset_spin - dynpose_check chkEnableRoll chkEnablePitch chkEnableYaw chkEnableX chkEnableY chkEnableZ - center_button - reset_button camindex_spin res_x_spin res_y_spin diff --git a/FTNoIR_Tracker_PT/ftnoir_tracker_pt.cpp b/FTNoIR_Tracker_PT/ftnoir_tracker_pt.cpp index e9394eff..5b77da69 100644 --- a/FTNoIR_Tracker_PT/ftnoir_tracker_pt.cpp +++ b/FTNoIR_Tracker_PT/ftnoir_tracker_pt.cpp @@ -201,7 +201,14 @@ bool Tracker::GiveHeadPoseData(THeadPoseData *data) FrameTrafo X_CH = X_CM * X_MH; Matx33f R = X_CH.R * X_CH_0.R.t(); - Vec3f t = X_CH.t - X_CH_0.t; + Vec3f t = X_CH.t - X_CH_0.t; + + // correct for camera pitch + Matx33f R_CP( 1, 0, 0, + 0, cos(deg2rad*cam_pitch), sin(deg2rad*cam_pitch), + 0, -sin(deg2rad*cam_pitch), cos(deg2rad*cam_pitch)); + R = R_CP * R * R_CP.t(); + t = R_CP * t; // get translation(s) if (bEnableX) { @@ -213,12 +220,6 @@ bool Tracker::GiveHeadPoseData(THeadPoseData *data) if (bEnableZ) { data->z = t[2] / 10.0; } - - // correct for camera pitch - Matx33f R_CP( 1, 0, 0, - 0, cos(deg2rad*cam_pitch), sin(deg2rad*cam_pitch), - 0, -sin(deg2rad*cam_pitch), cos(deg2rad*cam_pitch)); - R = R_CP * R * R_CP.t(); // translate rotation matrix from opengl (G) to roll-pitch-yaw (R) frame // -z -> x, y -> z, x -> -y diff --git a/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dialog.cpp b/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dialog.cpp index 83c04305..a1531dd7 100644 --- a/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dialog.cpp +++ b/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dialog.cpp @@ -105,7 +105,7 @@ TrackerDialog::TrackerDialog() connect( ui.tcalib_button,SIGNAL(toggled(bool)), this,SLOT(startstop_trans_calib(bool)) ); connect(ui.reset_button, SIGNAL(clicked()), this, SLOT(doReset())); - connect(ui.center_button, SIGNAL(clicked()), this, SLOT(doCenter())); + //connect(ui.center_button, SIGNAL(clicked()), this, SLOT(doCenter())); connect(ui.ok_button, SIGNAL(clicked()), this, SLOT(doOK())); connect(ui.cancel_button, SIGNAL(clicked()), this, SLOT(doCancel())); @@ -314,7 +314,7 @@ void TrackerDialog::registerTracker(ITracker *t) tracker = static_cast(t); if (isVisible() && settings_dirty) tracker->apply(settings); ui.tcalib_button->setEnabled(true); - ui.center_button->setEnabled(true); + //ui.center_button->setEnabled(true); ui.reset_button->setEnabled(true); } @@ -323,7 +323,7 @@ void TrackerDialog::unRegisterTracker() qDebug()<<"TrackerDialog:: Tracker un-registered"; tracker = NULL; ui.tcalib_button->setEnabled(false); - ui.center_button->setEnabled(false); + //ui.center_button->setEnabled(false); ui.reset_button->setEnabled(false); } diff --git a/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dll.cpp b/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dll.cpp index 9ceaa321..7f58d77d 100644 --- a/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dll.cpp +++ b/FTNoIR_Tracker_PT/ftnoir_tracker_pt_dll.cpp @@ -12,7 +12,7 @@ //----------------------------------------------------------------------------- void TrackerDll::getFullName(QString *strToBeFilled) { - *strToBeFilled = "PointTracker 1.0 beta"; + *strToBeFilled = "PointTracker 1.0"; } void TrackerDll::getShortName(QString *strToBeFilled) -- cgit v1.2.3