diff options
Diffstat (limited to 'jni/feature_stab/db_vlvm/db_framestitching.h')
-rw-r--r-- | jni/feature_stab/db_vlvm/db_framestitching.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/jni/feature_stab/db_vlvm/db_framestitching.h b/jni/feature_stab/db_vlvm/db_framestitching.h new file mode 100644 index 000000000..5fef5f37e --- /dev/null +++ b/jni/feature_stab/db_vlvm/db_framestitching.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id: db_framestitching.h,v 1.2 2011/06/17 14:03:31 mbansal Exp $ */ + +#ifndef DB_FRAMESTITCHING_H +#define DB_FRAMESTITCHING_H +/*! + * \defgroup FrameStitching Frame Stitching (2D and 3D homography estimation) + */ +/*\{*/ + + +/***************************************************************** +* Lean and mean begins here * +*****************************************************************/ +/*! + * \defgroup LMFrameStitching (LM) Frame Stitching (2D and 3D homography estimation) + */ +/*\{*/ + +/*! +Find scale, rotation and translation of the similarity that +takes the nr_points inhomogenous 3D points X to Xp +(left to right according to Horn), i.e. for the homogenous equivalents +Xp and X we would have +\code + Xp~ + [sR t]*X + [0 1] +\endcode +If orientation_preserving is true, R is restricted such that det(R)>0. +allow_scaling, allow_rotation and allow_translation allow s,R and t +to differ from 1,Identity and 0 + +Full similarity takes the following on 550MHz: +\code +4.5 microseconds with 3 points +4.7 microseconds with 4 points +5.0 microseconds with 5 points +5.2 microseconds with 6 points +5.8 microseconds with 10 points +20 microseconds with 100 points +205 microseconds with 1000 points +2.9 milliseconds with 10000 points +50 milliseconds with 100000 points +0.5 seconds with 1000000 points +\endcode +Without orientation_preserving: +\code +4 points is minimal for (s,R,t) (R,t) +3 points is minimal for (s,R) (R) +2 points is minimal for (s,t) +1 point is minimal for (s) (t) +\endcode +With orientation_preserving: +\code +3 points is minimal for (s,R,t) (R,t) +2 points is minimal for (s,R) (s,t) (R) +1 point is minimal for (s) (t) +\endcode + +\param scale scale +\param R rotation +\param t translation +\param Xp inhomogenouse 3D points in first coordinate system +\param X inhomogenouse 3D points in second coordinate system +\param nr_points number of points +\param orientation_preserving if true, R is restricted such that det(R)>0. +\param allow_scaling estimate scale +\param allow_rotation estimate rotation +\param allow_translation estimate translation +*/ +DB_API void db_StitchSimilarity3DRaw(double *scale,double R[9],double t[3], + double **Xp,double **X,int nr_points,int orientation_preserving=1, + int allow_scaling=1,int allow_rotation=1,int allow_translation=1); + + +/*\}*/ + +#endif /* DB_FRAMESTITCHING_H */ |