My goal is to warp a top-down fisheye view to end up with a flat square 'texture' that could be applied to a flat plane and would represent the 'real' floor eg a 1024x1024 texture would map to a 4 meter by 4 meter of floor in the room (ignore the other 'items'). Or even 2 meter by 2 meter around the center.
In other words I just want to flatten the floor in the image and project it 'orthographically' so that each one of those checkerboard squares is exactly the same size. If the whole floor was covered in checkers, with no other items, my output would be flat checkerboard crop of 4 meters by 4 meters.
camera is imx 219 200 FOV about 1.3 meters off the ground pointing straight down. (well if it were pointing exactly straight down the red down would be on the green dot)
I am looking for python opencv implementation, but if someone at least knows what it is that I need to do/measure to achieve it, it will be super helpful.
I have not seen any other examples of fisheye pointing downward, and more than just the 'straight lines' I need the 'orthographic' projection where all squares are same size regardless of distance from camera.
My concern is that after fisheye correction, the squares toward the center will be 'larger' than at the side, even if the lines are vertically and horizontally parallel. eg, if fisheye 'fixes' this image, will all the squares be same size, or will just lines be parallel?
for example the following would not be acceptible, even if all the lines are parallel:
After calibration, I end up with this:
In the image above, I copy-pasted the closest black square and pasted it along each row so you can see how the squares get smaller as they get farther away. I need to know how to correct that.