How can I measure the local sparsity of neighbourhood of a pixel (x,y) after homography transform

102 Views Asked by At

Example Image

Let say I am rectifying a planar surface in the image.

The object is represented by finite discrete number pixel. Once it get projected to a rectified coordinate by a $3x3$ homography matrix $H$, the pixels of the far corner of the desk in the example image become sparse because the information does not exists in the original image. Two neighbouring pixel in the original image become more separate after projection.

Normally in computer vision, we solve this by interpolating nearby pixel. But I am measuring coordinate of some object in the original image. I want to get a sense of "uncertainty" after projected to rectified coordinate.

1

There are 1 best solutions below

0
On

I'm not sure if this is anything like an established concept, but I would use Tissot's indicatrix as inspiration here: consider a circlein the original image and investigate the rectified version of that.

You could make the original circle have one pixel radius, or half a pixel, or a square pixel area, or infinitesimal radius. I guess unless your original image is really low resolution or your transformation really extreme, there should not be much practical difference between these.

You can use the ratio of rectified area to original area as a measure of how much rectified area an original pixel represents. You could also measure things which relate to the eccentricity or aspect ratio in order to see how direction-dependent this effect is.

While these things can be expressed conceptually in terms of circles and their transformed conics, I would assume that if you do the math on the symbolic level, you probably can come up with expressions that don't have much relation to the original circle. The pixel size independent version with infinitesimal radius should lead to the simplest expressions as it is scale invariant.

I haven't done the math, though. So if you do and get stuck, feel free to update your question and send me a comment and I can have a look. Or ask a follow-up question and add a comment here.