4
$\begingroup$

i need to perform registration to 2D image using"rigid transformation" in matlab .i need this for measuring the similarity between my images .any one know how this can be done using matlab?

an example on my images :

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

regards

$\endgroup$
6
  • $\begingroup$ Please post the image(s) you want to register. $\endgroup$
    – Maurits
    Feb 13, 2012 at 22:45
  • 1
    $\begingroup$ If you have the image processing toolbox, then go to the documentaion Image processing Toolbox>User's Guide>Image Registration. This is thoroughly documented. $\endgroup$
    – yohbs
    Feb 14, 2012 at 8:14
  • $\begingroup$ @Maurits .....edition done and link on my image was added.thanks. $\endgroup$
    – ruaa
    Feb 14, 2012 at 10:09
  • $\begingroup$ @yohbs . thanks in advance , but i still need many additional things to this matlab illustration $\endgroup$
    – ruaa
    Feb 14, 2012 at 10:11
  • $\begingroup$ That is a single image. You need two, at least. And please, embed them. $\endgroup$
    – Maurits
    Feb 14, 2012 at 10:33

2 Answers 2

6
$\begingroup$

A rigid, or isometrie transformation, is a transformation in which the distances between the points that are transformed, are preserved. This means that an object formed by these points will have the same shape and size after transformation. Examples are rotations and translations.

A 2D column vector can be rotated by $\theta$ as follows:

$\left(\begin{array}{c}x' \\ y'\end{array}\right) = \left ( \begin{array}{cc} \cos \theta & - \sin \theta \\ \sin \theta & \cos \theta \end{array} \right ) \left(\begin{array}{c}x \\ y\end{array}\right)$

In your case you will probably be seeking a combination of rotation and translation between two images meaning that the relation between the points of these images can be defined as follows:

$\left(\begin{array}{c}x' \\ y' \\ 1\end{array}\right) = \left ( \begin{array}{ccc} \cos \theta & - \sin \theta & t_x\\ \sin \theta & \cos \theta & t_y \\ 0 & 0 & 1 \end{array} \right ) \left(\begin{array}{c}x \\ y \\1\end{array}\right)$

Or short:

$\textbf{x}' = \textbf{A}\textbf{x}$

This particular transformation has 3 degrees of freedom, one for rotation and two for translation. This means that you can solve this matrix for 2 point correspondences $\{ \textbf{x}' \leftrightarrow \textbf{x} \}$. That means in your case that you need two points in the original image and two matching points in the distorted image to ascertain the translation and rotation between them.

Ultimate reference: Multiple View Geometry

EDIT

The deformation between these images is obviously not an isometrie. For one the branches appear and disappear between them. I played a little with a slightly more involved form of feature based registration based on the assumption that the distortion is a similarity transform with 4 degrees of freedom, and the features will make up for the difference in edges. In short:

  • SIFT feature detection and matching
  • RANSAC estimation to detect inliers
  • Direct Linear Transform (DLT) variant for estimation of scale and rotation
  • Run of the mill cross correlation to detect the translation

Results, not brilliant, but here goes

Inital match Feature match Final match

All code on Github, demo file is so_13_02_2012.m.

$\endgroup$
2
  • $\begingroup$ please Maurits . can you give me more illustration . because it is obvious that you have good knowledge in computer vision. i am just new bie to this field .can you give me simpler explanation? $\endgroup$
    – ruaa
    Feb 13, 2012 at 15:11
  • $\begingroup$ what is the difference between original and registered images that you posted in your edition.what is your proposal? ,which method may be more suitable to give me specific result in matching my images? . wait your reply if you can ,please. $\endgroup$
    – ruaa
    Feb 20, 2012 at 11:08
1
$\begingroup$

For translation only you can use a simple phase correlation technique which is trivial to implement in Matlab.

This can be extended to include rotation and scaling as well by moving to log-polar coordinates (see the links off of the Wikipedia page).

$\endgroup$
1
  • $\begingroup$ Maurits .....edition done and link on my image was added.thanks. $\endgroup$
    – ruaa
    Feb 14, 2012 at 10:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.