Glinka
Glinka

Reputation: 533

Methods to detect a common area in a series of images

Suppose we have a series of digital images D1,...,Dn. For certainty, we consider this images to be of the same size. The problem is to find the largest common area -- the largest area that all of the input images share.

I suppose that if we have an algorithm to detect such area in two input images A and B, we can generalize it to the case of n images.

The most difficulty in this problem is that this area in image A doesn't have to be identically, pixel to pixel, equal to the the same area in image B. For example, we take two shots of a building using phone camera. Our hand shook and the second picture turned out to be a little dislodged. And the noise that's present in every picture adds uncertainty as well.

What algorithms should I look into to solve this kind of problem?

Upvotes: 0

Views: 455

Answers (2)

FiReTiTi
FiReTiTi

Reputation: 5888

I would use a method like SURF (or SIFT): you compute the SURF on each image and you see if there is common interest points. The common interest points will be the zone you are looking for. Thanks to SURF, the area does not have to be at the same place or scale.

Upvotes: 1

user1196549
user1196549

Reputation:

Simple but approximate solution, to begin with.

  • Rescale the images so that the amplitude of the shaking becomes smaller than a pixel.

  • Compute the standard deviation of every pixel across all images.

  • Consider the pixels with a deviation below a threshold.


As a second approximation, you can use the image at the full resolution as a template, but only in the areas obtained as above. Then register the other images with respect to it. The registration model can be translational only, but allowing rotation would be better.

Unfortunately, registration isn't an easy task. For your small displacements, Lucas-Kanade or Shi-Tomasi might be appropriate.

After registration, you can redo the deviation test to get better delineated regions.

Upvotes: 1

Related Questions