Camera Calibration and 3D Particle Tracking Toolbox for MATLAB®
M. Himpel, email@example.com
This toolbox has been developed to determine the motion of an ensemble of particles in a dusty plasma from stereoscopic camera image sequences. This toolbox can be used to calibrate a N-camera system and to capture and reconstruct the trajectories of the captured particles. I tried to make stand-alone modules for each of the following steps:
- N-camera calibration
- marker detection
- compute intrinsic and extrinsic camera parameters
- 2D particle position detection
- GUI-based detection preview
- sobel-filtering available
- Disparity-based calibration refinement
- Correspondence analysis to find 3D-positions
- Multiset triangulation to exclude "ghost"-particles
- Trajectory linking
Modules 3 to 6 are generally intended to work for a N-camera system. However, there may be some residuals from former restrictions to 3 or 4 cameras.
Any feedback to the author will be welcome. As the toolbox still is under development, it is possible to include further features/changes/bugfixes when reported. See documentation for details.
In the newer versions (from Dec. 2018), a so called iterative reconstruction algorithm is implemented. The documentation will be updated accordingly.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
List of Changes
|2016-10-14||initial upload, example not working yet, lots of documentation to do|
|2016-11-01||reviewed entry scripts, example not working yet|
|2016-12-21||2d-detection revised for use with N-cameras.|
|2017-01-17||correspondence-scripts revised, EXAMPLE updated (still not user friendly from scratch)|
|2017-03-02||issues with rgb/graymap images resolved, disparity-algorithm improved|
|2017-12-11||Shake-the-box algorithm introduced!! Example_STB available!|
|2018-06-19||Major updates. Examples not running so far...|
|2018-09-11||Shake-the-box example is finally working!|
|2020-04-16||Mostly cosmetics and minor bug-fixes|
This toolbox relies in some parts on existing toolboxes that are available on the web. The calibration part is mainly a connection between the marker recognition functionality from the toolbox of C. Wengert  and the "Multiple-Camera Calibration Toolbox" from Bo Li . Both of them are using parts of the "Stereo-Toolbox" from Jean-Yves Bouget .
The 2D-detection uses functions from John C. Crocker, David G. Grier and Eric R. Dufresne. 
The disparity-based calibration refinement is an implementation of the algorithm given in the paper "Volume self-calibration for 3D particle image velocimetry" by B. Wieneke .
The multiset-triangulation is an implementation of the algorithm given in the paper "Multiset Triangulation 3D PTV and its Performance Compared to Tomographic PIV" by Y.K. Akhmetbekov .
The trajectory linking is a (very) enhanced MATLAB-Example that comes with its "computer-vision system" toolbox.
The Shake-the-box algorithm is a MATLAB implementation of the algorithm given in .
Camera-Calibration and 3D Particle Tracking Toolbox for MATLAB®
Camera-Calibration and 3D-Particle Tracking Toolbox for MATLAB®