First ensure that all the support software (everything besides 3d and fl) is built. Then configure the fl library. You do this by editing the file "Config" in the first directory level of the installation. It contains paths to each of the supporting libraries (such as LAPACK) and options for including them in the compilation and link processes. First run "make depend", and then finally build the fl library by running "make".
Finally, configure and build the 3D software. The configurations for the 3D software are in the same style as for the fl library, but they are included directly in the Makefile. Edit the makefile to point to the libraries, run "make depend", and then build whatever 3D programs you wish to use.
The programs within the 3D suite are independent, and you don't have to build them all to use one of them. However, there is a kind of pipeline of processing for achieving various ends, which requires the application of several of the programs in sequence. For example, to form a 3D model from a set of input pictures, you use the following sequence:
Below are brief summaries of the usage for each program in the suite. You may also follow these two links to view detailed information on the software internals:
All the programs in the suite use the same convention for parameter passing, which is as follows:
findpoint include=parms
Here are the parameters specific to this program:
| Parameter | Default | Explanation |
|---|---|---|
| {image file names} | Specify which image file to process. The paths to these images will be stored in the resulting point file, and will be relative to the current directory. | |
| outFileName | The resulting interest point file. | |
| resumeFileName | An interest point file from a previous, and presumably interrupted, run. The file can be incomplete as a result of the interruption. The program will use any good results from the file, and then complete the processing on the unfinished work. | |
| method | hl | A comma separated list of codes specifying which
interest point detectors to run. The detectors are: hl -- HarrisLaplacian h -- Harris l -- Laplacian s -- Hessian d -- Difference-of-Gaussian |
| maxpoints | 5000 | The largest number of points that any given detector may contribute per image. |
| harrisFactor | 0.03 | Controls the threshold on Harris response required for a point to be accepted. The value specifies the number of standard deviations above zero to set the threshold. The statistic is calculated over all the Harris maxima in the image. |
| laplaceFactor | 2 | Controls the threshold on Laplacian response required for a point to be accepted. The value specifies the number of standard deviations away from the average response. The average and standard deviation are calculated over all the Laplacian maxima in the image. |
| nms | 1 | The radius of the neighborhood around a point within which it must be the largest value in order to be considered a local maximum. |
| firstScale | 1 | The smallest scale at which to run each of the detectors. You would normally only change this value if you know that all features in the images are at larger scales, and don't won't the list of interest points cluttered by irrelevant small scale features. |
| laplaceFirstScale | firstScale | Allows one to choose a different start scale for the Laplacian detector than for the other detectors. |
| lastScale | 25 | The largest scale at which to run each of the detectors. You would normally change this value if you know that some features in the images are at very large scales. |
| stepSize | sqrt(2) | Determines the spacing between scale levels. Specifies the amount by which to multiply the current scale level in order to find the next scale level. |
| extraSteps | 20 | Determines the granularity when scanning for characteristic scale of a given interest point. Specifies the number of subdivisions between each point detector scale level. |
| alphaColor | 0 | Specifies a color to paint over the background of an image, where foreground is indicated by the alpha channel. This can be used to remove distracting texture from an image. If this value is zero, the image is not modified. |
| Parameter | Default | Explanation |
|---|---|---|
| pointFileName | The raw interest point file output by findpoint. | |
| outFileName | The resulting affine-invariant interest point file. | |
| resumeFileName | An affine-invariant interest point file from a previous, and presumably interrupted, run. The file can be incomplete as a result of the interruption. The program will use any good results from the file, and then complete the processing on the unfinished work. | |
| nms | -1 | "Non-max suppression". During affine-adaptation,
multiple interest points
will converge to roughly the same location. All but one of those points
must be eliminated. This parameter gives the radius around a given point
within which to check for duplicate points. There are several options for
non-max suppression: nms > 0 -- Use a fixed number of pixels and Euclidean distance. nms < 0 -- Use -nms * point.scale pixels and Mahalanobis distance. nms = 0 -- Don't do non-max suppression. |
| lockPosition | 0 | If set to 1, indicates that during the adaptation process the point's position should not change. This allows you to control which patch parameters are adapted. |
| lockScale | 0 | If set to 1, indicates the during the adaptation proces the point's scale should not change. If you set both lockScale and lockPosition, then only shape changes. |
| iterate | 1 | There are three parameters (with total dimension of 7) that describe each point. They are: location (2D), scale (1D), and shape (4D). Each parameter has an influence on the estimates of the other two. Therefore, the adaptation process iteratively estimates each parameter in turn using the current values of the other two parameters. By prohibiting the iteration, you can get a quick raw estimate of the parameters. The main objective would be to get an estimate of shape. |
| scaleCeiling | 25 | Limits the growth of the scale parameter during iteration. Sometimes affine-adaptation will (correctly) find increasingly larger scales for a given point. The cost for processing increases dramatically with scale. If you know that you only want to consider points under a certain size, then you can make the program run faster by setting this limit. |
| alphaColor | 0 | Specifies a color to paint over the background of an image, where foreground is indicated by the alpha channel. This can be used to remove distracting texture from an image. If this value is zero, the image is not modified. |
| showWindow | 0 | Turns on graphical monitoring of the adaptation process. |
| fast | 0 | Enables certain optimizations in the adaptation process which favor speed over repeatability. |
| fixAngle | 0 | If set to 1, then the program skips all processing except the final angle estimation. |
| Parameter | Default | Explanation |
|---|---|---|
| {image file names} | Specify the image files for which you want to display interest points. | |
| pointFileName | An interest point file output by either findpoint or adaptpoint. | |
| supportRadial | 1 | Amount by which to multiply the characteristic scale of a given point in order to size the resulting mark in the image. |
| show | 1 | Indicates that the image should be diplayed in a window. |
| write | 0 | Indicates that the image should be written to disk. |
| monochrome | 0 | Indicates that the image should be rendered in grayscale. The interest points themselves will still be in color. |
| rectangle | 0 | Indicates that the interest points should be marked as parallelograms rather than ellipses. |
| center | 0 | Indicates that there should be a mark at the exact location of the interest point, in addition to a mark that indicates the shape and scale of the associated patch. |
| zoom | 1 | An amount by which to scale up the entire image. |
| lineWidth | 1 | How thick to stroke the line marking the boundary of a patch. |
| firstScale | -inf | The lower limit on the range of scales for which to display interest points. All other interest points are ignored. |
| lastScale | inf | The upper limit on the range of scale for which to display interest points. Used in conjunction with firstScale to focus on a specific subset of interest points. |
| alphaColor | 0 | Specifies a color to paint over the background of an image, where foreground is indicated by the alpha channel. If this value is zero, the image is not modified. |