Introduction
soil-align is an application for registration of 3D images of porous
media. It's based on computing affine transform and gamma correction
invariant feature points (using the SIFT algorithm modified for 3D),
matching them on two images (one of which called "source" and another
"reference") and finding a transform which "maps" the source image to the
reference.
An example: 2D slices ([100, :, :] and [700, :, :]) from the
reference and the source images (both having dimensions \(1000 \times 1000
\times 1000\)) are shown, as well as the resulting image (standalone and
overlayed with the reference).

Source code and binary packages
There is two options for obtaining the source code:- Download a release from GitHub. There is also an experimental binary package for Ubuntu LTS.
- Clone git repository:
git clone https://github.com/fatimp/soil-align.
Dependencies
- SIFT3D version 2.0+
- faiss (принадлежит компании Meta, признанной в РФ экстремистской организацией)
- SBCL (Another implementation of Common Lisp will not do)
- OpenBLAS
- libtiff
- LMDB
- Qlot and SBCL for building
Installation
- Launch a shell and
cdto the root directory of this project. - Execute
qlot install && qlot exec sbcl --dynamic-space-size 100gb - In the opened shell execute
(asdf:make :soil-align). - Your executable file is
src/soil-align.
Literature
- B. Rister, M. A. Horowitz and D. L. Rubin, "Volumetric Image Registration From Invariant Keypoints," in IEEE Transactions on Image Processing, vol. 26, no. 10, pp. 4900-4910, Oct. 2017. doi: 10.1109/TIP.2017.2722689
- Dong, Wei, Charikar Moses, and Kai Li. "Efficient k-nearest neighbor graph construction for generic similarity measures." Proceedings of the 20th international conference on World wide web. ACM, 2011.
- CLAHE
- RANSAC