The StereoMorph method was designed specifically for cheap and rapid collection of landmarks and curves from a large number of specimens or objects. It’s adapted from methods that have been used to study 3D animal motion for several decades (Wood & Marshall 1986; Socha, O'Dempsey & LaBarbera 2005; Hedrick 2008; Brainerd et al. 2010) . All these studies rely on a method known as direct linear transformation (DLT) for the reconstruction of points from two or more camera views into 3D coordinates. Given two or more cameras positioned arbitrarily around some volume of space, DLT provides a mathematical basis for transforming a point’s position in two or more camera views from 2D pixel coordinates into 3D real-word units (e.g. centimeters). StereoMorph uses DLT in the exact same way. Users photograph a specimen or object with two cameras, manually digitize points and curves they wish to collect in both views and these points and curves are reconstructed into 3D real-world coordinates.
Camera calibration, image digitization and point and curve reconstruction can all be performed using the R package StereoMorph. Additionally, StereoMorph is cheaper than most of the above methods: the method can be implemented for the cost of two digital cameras and two tripods (less than $1000 total). For users that already own a suitable camera, only the cost of an additional camera and tripod would be required. Since only two photos are required per specimen and all landmarks and curves are manually digitized directly on 2D images, the StereoMorph method is best suited to the collection of a few landmarks and curves from a relatively large number of specimens or objects. However, it is important to note that StereoMorph cannot produce 3D surface reconstructions nor be used to collect 3D surface data – only points and curves.
I've combined many of these DLT functions (camera calibration, point and curve reconstruction) with additional tools for handling 3D point sets into the R package StereoMorph. This web tutorial will show you how to go from points and curves digitized in an image
|Landmarks and curves digitized on the same bird skull from two different cameras.|
|Landmarks (black) and curve points (red) reconstructed from 2D images using the StereoMorph R package.|
(Plotted using plot3d() from the rgl R package)
Before starting the tutorial, read Getting Started. This shows how to install R, StereoMorph and download the tutorial files that will be used throughout this tutorial. The tutorial is broken down into 10 steps:
1) Creating a checkerboard pattern
2) Auto-detecting checkerboard corners
3) Measuring checkerboard square size
4) Arranging the cameras
5) Calibrating stereo cameras
6) Testing the calibration accuracy
7) Photographing an object
8) Digitizing photographs
9) Reconstructing 2D points and curves into 3D
10) Unifying, reflecting and aligning
This tutorial is also available as a PDF.