featExtract is the program used to extract SIFT-Ranked [1] features from images. It accepts nifti images (.nii, .hdr, .nii.gz) as input, and output a list of keypoints and their descriptors.
Volumetric local feature extraction v1.1
Usage: featExtract [options] <input image> <output features>
<input image>: nifti (.nii,.hdr,.nii.gz).
<output features>: output file with features.
-w | Output feature geometry in world coordinates, NIFTI qto_xyz matrix (default is voxel units). |
-2+ | Double input image size. |
-2- | Halve input image size. |
The program will output a .key file (with the same name as the input file), containing a list of features, with their coordinates, scale, orientation, and descriptor.
featMatchMultiple is the program, based on FLANN library [2], used to match features.
Volumetric Feature matching v1.1
Usage: featMatchMultiple [options] -f <input filelist>
<input filelist>: Text file containing the list of .key files (from featExtract). 1 key file per line.
-n | Number of nearest neighbors. Default: 5. |
-r- | Use only unrotated features. |
The program will output different files:
_command.txt | The complete command used to generate this results (for logging purpose). |
_names.txt | List of the input image filename |
matching_votes.txt | NxN matrix containing the accumulation of the weighted votes for each pair of image. The most important file. |
feature_count.txt | The number of features for each input file. |
vote_count.txt | NxN matrix containing the accumulation of the non-weighted votes for each pair of image. |
https://central.xnat.org/data/projects/SIFTFeatures
[1] Toews, Matthew, and William Wells. "Sift-rank: Ordinal description for invariant feature correspondence." 2009 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2009.
[2] Muja, Marius, and David G. Lowe. "Scalable nearest neighbor algorithms for high dimensional data." IEEE transactions on pattern analysis and machine intelligence 36.11 (2014): 2227-2240.