Image registration (non-rigid \ non-linear)

I am looking for some algorithm (preferably if source code is available) for registering images. The deformation of the image cannot be described by a homography matrix (because I believe that the distortion is not symmetrical, but not homogeneous), more specifically, the deformations are reminiscent of barrel deformation / distortion and trapezoid, possibly some rotation of the image. I want to get pairs of pixels from two images, and so I can get a representation of the "warp field".

I google a lot and find out that there are some base algorithms for some ideas of physics, but it seems that they can converge to local maxima, but not global ones. I can limit the program to semi-automatic, this means some simple user interaction.

maybe some algorithms like SIFT? but I think that it cannot provide a β€œdeformation field” with a regular sufficient density.

If it is important that the scale changes do not change.

complex field example http://www.math.ucla.edu/~yanovsky/Research/ImageRegistration/2DMRI/2DMRI_lambda400_grid_only1.png

+3
source share
2 answers

What you are looking for is an optical stream. Searching for these conditions will give you numerous results.

In OpenCV, there is a calcOpticalFlowFarneback () function (in the video module) that does what you want. The C API still has an implementation of the classic paper by Horn and Schunk (1981) called "Optical Flow Definition".

, , ( , opencl . .): http://lts2www.epfl.ch/people/dangelo/opticalflow

OpenCV ( ;-), ITK itk.org ( ).

(matlab, C/++...), google, cs.brown.edu/~dqsun/research/software.html, gpu4vision ..

- EDIT: -

: . , .

- ( opencv) , , , ( TV-L1 ..).

KLT, opencv Lucas-Kanade.

, , . , , /, ( ). , . , , , , .

, , , , . / , ., , , "" .

+2

All Articles