Using Hugin to create list of chessboard corners

Install hugin:

apt-get install hugin

Procedure:

  1. Start hugin.

  2. Menu "Interface", select "Advanced" (or "Expert").

  3. In the "Advanced" window, menu "Edit", select "Add Image" to load the camera image.

    In the popup, select Lens Type: Normal (Rectilinear), HFOV(v): 60 degrees. This does not actually have any effect for this procedure.

  4. Switch to the Control Points tab, which shows the same image twice.

  5. At bottom-right:

    • Select Zoom: 200%
    • Uncheck "Auto Fine-tune"
    • Check "Auto Add"
    • Uncheck "Auto-estimate"
  6. Then for each chessboard inner corner:

    • Click mouse in left image near the correct place, will show "new" label. A small crosshair will be shown on the pixel, and an enlargement will be shown next to it.

      While keeping the mousepointer over the left image, use the arrow keys to finetune. This provides 1/3rd subpixel accuracy.

    • Then in the right image, click somewhere arbitrary -- but it works best to make a rows/columns grid there as well.

      This will immediately add a control point number (starting at 0) and draw a line.

    • Then at the bottom-center, select Mode: "Normal". This will stop drawing the connecting lines, which would become very slow.

    Repeat this for all inner corners. Start with the first row left to right, then the second row left to right, then the third row, etc.

    For a 9x7 chessboard, there will be 8 inner corners per row, and 6 rows. First row will get labels 0 -- 7, second row 8 -- 15, etc.

  7. Menu "File", select "Save As", in .pto format.

  8. Exit hugin.

  9. Finally convert hugin .pto file to (partial) input for camcalibplanes:

    ./pto2gridpix 8 6  < file.pto  > file.json
    

    ("8 6" is for a 9x7 chessboard)

Partial results

To add a few points to an incomplete opencv-findcorners result: