Hi,
I'm calibrating a GoPro Hero 4. I have calibrated using chessboard pattern. I would like to see if I can get a better calibration with the circles instead. However I'm having some problems determining the correct width/height.
Here is the pattern I'm using (generated with the included gen_pattern.py):

I'm using command: `findCirclesGrid(img, (width, height), cv2.CALIB_CB_ASYMMETRIC_GRID).`
I have tried all possible combinations of any way you could count the width (14 or 7) and height (5 or 10), and any combination of the two. I also tried rotating the image. It detected the pattern in the following settings:
Wide image, width=7, height=10:

Looks correct at first glance, but seeing how the dots connect, it's wrong.
Wide image, width=5, height=14:

Clearly wrong.
Tall image, width=7, height=10:

This is actually correct.
Tall image, width=5, height=14:

Again, clearly wrong.
So my questions are:
1. Why is there no correct way to detection the image in the wide orientation?
2. If I then choose the tall orientation of the image, does it only work if I had the actual image printout in the tall orientation, when posing it in front of the camera?
It seems somewhat less table to me than the chessboard, but I could be wrong?
What am I doing wrong?
Thanks in advance.
↧