
Re: How to calculate the angle between two images?
Posted:
Apr 3, 2009 8:51 AM


"khoo" <jim_khoo@hotmail.com> wrote in message <gr4v19$60a$1@fred.mathworks.com>... > > 5) Mask the angle image with above mask, thus removing > > meaningless angle pixels. We are only looking at gradients > > that are real. > > > i no understand this two sentence meaning..can u explain it or provide the code need to be used??
No I don't have any Matlab code I can give you, I make it a policy not to do this. You need to write your own software in order for you to be able to master the craft  just like all of the Guru's here had to.
What I am saying in those two sentences is every pixel in the image has an angle calculated using the atan2 operation. However these angles in regions of the image that are featureless have no meaning, they are purely due to noise in the imaging process. This means we need some way of identifying real angles and meaningless angles. Real angles occur where we have edges, so if we pass both original images through an edge detector such as edge(canny) or edge(sobel) and then 'make the indicated edges slightly fatter using the correct morphology operator, then it follows that if we lay this modified edge image over its corresponding angle image, then angle values corresponding to the pixels hilighted in the edge image correspond to angles we can believe in. Those in areas where there are no edges cannot be trusted.
Now you need to make 2 histograms (one from each of your angle images) of your trusted angles. What you find is that these histograms are virtually identical, with the exception that they are shifted relative to each other. This shift is equal to the relative rotation of the original images.
Hope that is clearer.
Dave Robinson

