forked from bartvdbraak/blender
d279e8891f
=========================== - ColaMD moved from OpenNL to extern/. It'll be needed for libmv. Also, it's a bit updated from year 1999 to 2007. Need to be tested for regressions. - Updated bundling script for libmv. Now it uses fuller subset of this library. - Bundled new libmv. - Request from Keir: add command line argument to toggle logging stuff on. Currently, if Blender is launched with -d argument libmv would start printing logging messages. There's no argument to increase verbosity, but there's API in libmv-capi, so it'll be easy to add. - Finally fixed crash when ibuf is acquiring with user=NULL. - Added ActiveClip property to the scene. This clip is used as default value for new match-moving constraints. - Added some flags to Display panel of View3D. Related on displaying match-moving stuff. - Internal change: bundles data moved inside to MovieTrackingTrack. - Initial implementation of 3d reconstruction. - Added constraint "Camera Solver". This constraint is supposed to be used to make camera follow the reconstructed camera path. - Added "reference" property to "Follow Track" constraint. Now object could be "parented" to 2D track position or to 3D bundle position. The very quick guide: To use reconstruction you should have footage with tracked markers, choose two keyframes in "Tracking settings" panel. There should be quite noticeable parallax effect between this two frames. This is used to initialize reconstruction stuff. Camera data (focal length and optical center) should be filled in "Camera Data" panel. Optical center is often the center of image, so it'll be filled in automatically. You should also set values for undistortion (K1, K2 and K3). Currently, there's no any visualization for this parameters and approach of "change value -> reconstruct -> see what've changed" is the only way for now. Libmv team is working on auto-calibration tool, so it should be easier to gather this coefficients in nearest (i hope) future. There's also no scene orientation stuff. Basic workflow: - Open footage. - Set markers and track them. - Fill in camera data and keyframes. - Hit "Solve Camera" button. - Add "Camera Solver" constraint to camera in scene. - Choose movieclip in that constraint. - To see bundles in 3D viewport active clip should be set in scene buttons.
128 lines
5.2 KiB
Plaintext
128 lines
5.2 KiB
Plaintext
The COLAMD ordering method - Version 2.7
|
|
-------------------------------------------------------------------------------
|
|
|
|
The COLAMD column approximate minimum degree ordering algorithm computes
|
|
a permutation vector P such that the LU factorization of A (:,P)
|
|
tends to be sparser than that of A. The Cholesky factorization of
|
|
(A (:,P))'*(A (:,P)) will also tend to be sparser than that of A'*A.
|
|
SYMAMD is a symmetric minimum degree ordering method based on COLAMD,
|
|
available as a MATLAB-callable function. It constructs a matrix M such
|
|
that M'*M has the same pattern as A, and then uses COLAMD to compute a column
|
|
ordering of M. Colamd and symamd tend to be faster and generate better
|
|
orderings than their MATLAB counterparts, colmmd and symmmd.
|
|
|
|
To compile and test the colamd m-files and mexFunctions, just unpack the
|
|
COLAMD/ directory from the COLAMD.tar.gz file, and run MATLAB from
|
|
within that directory. Next, type colamd_test to compile and test colamd
|
|
and symamd. This will work on any computer with MATLAB (Unix, PC, or Mac).
|
|
Alternatively, type "make" (in Unix) to compile and run a simple example C
|
|
code, without using MATLAB.
|
|
|
|
To compile and install the colamd m-files and mexFunctions, just cd to
|
|
COLAMD/MATLAB and type colamd_install in the MATLAB command window.
|
|
A short demo will run. Optionally, type colamd_test to run an extensive tests.
|
|
Type "make" in Unix in the COLAMD directory to compile the C-callable
|
|
library and to run a short demo.
|
|
|
|
If you have MATLAB 7.2 or earlier, you must first edit UFconfig/UFconfig.h to
|
|
remove the "-largeArrayDims" option from the MEX command (or just use
|
|
colamd_make.m inside MATLAB).
|
|
|
|
Colamd is a built-in routine in MATLAB, available from The
|
|
Mathworks, Inc. Under most cases, the compiled COLAMD from Versions 2.0 to the
|
|
current version do not differ. Colamd Versions 2.2 and 2.3 differ only in their
|
|
mexFunction interaces to MATLAB. v2.4 fixes a bug in the symamd routine in
|
|
v2.3. The bug (in v2.3 and earlier) has no effect on the MATLAB symamd
|
|
mexFunction. v2.5 adds additional checks for integer overflow, so that
|
|
the "int" version can be safely used with 64-bit pointers. Refer to the
|
|
ChangeLog for more details.
|
|
|
|
To use colamd and symamd within an application written in C, all you need are
|
|
colamd.c, colamd_global.c, and colamd.h, which are the C-callable
|
|
colamd/symamd codes. See colamd.c for more information on how to call
|
|
colamd from a C program.
|
|
|
|
Requires UFconfig, in the ../UFconfig directory relative to this directory.
|
|
|
|
Copyright (c) 1998-2007, Timothy A. Davis, All Rights Reserved.
|
|
|
|
See http://www.cise.ufl.edu/research/sparse/colamd (the colamd.c
|
|
file) for the License.
|
|
|
|
|
|
Related papers:
|
|
|
|
T. A. Davis, J. R. Gilbert, S. Larimore, E. Ng, An approximate column
|
|
minimum degree ordering algorithm, ACM Transactions on Mathematical
|
|
Software, vol. 30, no. 3., pp. 353-376, 2004.
|
|
|
|
T. A. Davis, J. R. Gilbert, S. Larimore, E. Ng, Algorithm 836: COLAMD,
|
|
an approximate column minimum degree ordering algorithm, ACM
|
|
Transactions on Mathematical Software, vol. 30, no. 3., pp. 377-380,
|
|
2004.
|
|
|
|
"An approximate minimum degree column ordering algorithm",
|
|
S. I. Larimore, MS Thesis, Dept. of Computer and Information
|
|
Science and Engineering, University of Florida, Gainesville, FL,
|
|
1998. CISE Tech Report TR-98-016. Available at
|
|
ftp://ftp.cise.ufl.edu/cis/tech-reports/tr98/tr98-016.ps
|
|
via anonymous ftp.
|
|
|
|
Approximate Deficiency for Ordering the Columns of a Matrix,
|
|
J. L. Kern, Senior Thesis, Dept. of Computer and Information
|
|
Science and Engineering, University of Florida, Gainesville, FL,
|
|
1999. Available at http://www.cise.ufl.edu/~davis/Kern/kern.ps
|
|
|
|
|
|
Authors: Stefan I. Larimore and Timothy A. Davis, University of Florida,
|
|
in collaboration with John Gilbert, Xerox PARC (now at UC Santa Barbara),
|
|
and Esmong Ng, Lawrence Berkeley National Laboratory (much of this work
|
|
he did while at Oak Ridge National Laboratory).
|
|
|
|
COLAMD files:
|
|
|
|
Demo simple demo
|
|
Doc additional documentation (see colamd.c for more)
|
|
Include include file
|
|
Lib compiled C-callable library
|
|
Makefile primary Unix Makefile
|
|
MATLAB MATLAB functions
|
|
README.txt this file
|
|
Source C source code
|
|
|
|
./Demo:
|
|
colamd_example.c simple example
|
|
colamd_example.out output of colamd_example.c
|
|
colamd_l_example.c simple example, long integers
|
|
colamd_l_example.out output of colamd_l_example.c
|
|
Makefile Makefile for C demos
|
|
|
|
./Doc:
|
|
ChangeLog change log
|
|
lesser.txt license
|
|
|
|
./Include:
|
|
colamd.h include file
|
|
|
|
./Lib:
|
|
Makefile Makefile for C-callable library
|
|
|
|
./MATLAB:
|
|
colamd2.m MATLAB interface for colamd2
|
|
colamd_demo.m simple demo
|
|
colamd_install.m compile and install colamd2 and symamd2
|
|
colamd_make.m compile colamd2 and symamd2
|
|
colamdmex.ca MATLAB mexFunction for colamd2
|
|
colamd_test.m extensive test
|
|
colamdtestmex.c test function for colamd
|
|
Contents.m contents of the MATLAB directory
|
|
luflops.m test code
|
|
Makefile Makefile for MATLAB functions
|
|
symamd2.m MATLAB interface for symamd2
|
|
symamdmex.c MATLAB mexFunction for symamd2
|
|
symamdtestmex.c test function for symamd
|
|
|
|
./Source:
|
|
colamd.c primary source code
|
|
colamd_global.c globally defined function pointers (malloc, free, ...)
|