Ask Your Question

Image matching/warping/alignment

asked 2015-03-02 21:12:23 -0600

Barry gravatar image

updated 2015-03-02 21:32:20 -0600

Hello, I'm not even sure what question to ask…

I have two images taken by a handheld camera, taken maybe a couple days apart. Think of images of a painting on a wall. The images will be taken from the same position, same distance, as close as humanly possible. I will use the first image as the template. I would like to adjust the second image (adjust size, shift left right up or down pixels, rotate a few degrees, or warp little bit) to match the first image as closely as possible. I will then take the difference of the two images to see if anything major has changed.

I am sure this type of thing has been done many times before. Can someone point me in the right direction toward what I should be looking for? Maybe there is a solution available for this? What is this type of image processing properly called? In my searching I've come across alignment, matching, homography … Nothing seems to be quite what I have in mind.

Thanks, Barry.

edit retag flag offensive close merge delete


Actually you are on the correct way. The techniques that you came across (i.e. alignment, matching, homography, feature keypoints, template matching, etc.) is actually the first step, once you have extracted the information needed from these techniques you can match/align the two shots and subtract them in order to obtain any differences. I do not know if there is something already made, most likely there is, to point you at, but I think with a bit search you will get something and if not you can always start by yourself and ask for guideness ;-)

theodore gravatar imagetheodore ( 2015-03-03 07:39:28 -0600 )edit

1 answer

Sort by » oldest newest most voted

answered 2015-03-03 08:12:41 -0600

Potato gravatar image

Look into Image Registration. -->

The functionality is available under the opencv_contrib repo and works only with OpenCV 3.0.0. I think it will solve your problem. I know there is test code that aligns two images of the same spatial area and finds the difference between the two. It is similar to what you are looking for. The repo is here ->

However this method does not employ the use of feature based (keypoint detection and descriptor matching) alignment and uses a more accurate pixel based alignment. It is up to you what method you want to use. You are on the right path with homography, alignment etc.

edit flag offensive delete link more



I hope 3.0 comes for Android soon. I found the following very good: I hope I can convert this to Android from Windows CPP (it uses opencv not opencv2).

Barry gravatar imageBarry ( 2015-03-06 16:35:51 -0600 )edit

That is a useful link! Thanks for sharing.

Potato gravatar imagePotato ( 2015-03-09 08:58:36 -0600 )edit

Question Tools



Asked: 2015-03-02 21:12:23 -0600

Seen: 4,137 times

Last updated: Mar 03 '15