The Dark Room's lens calibration interface is up and going. Since last posting, I've added viewport buttons that the user can click, which help minimise the time to undertake the calibration process. I put together a quick animation that visualises some of the functionality:
The arrows become available when the system recognises there's a series of horizontal and vertical lines, that is, a grid-like pattern. You'll also notice the grid points have different colours. Hard to see in the animation, but some are purple, others are red. Each time a new row is added, points are calculated based on where they might sit if the row was extended. These are the red points. They haven't been processed for corner matches yet. This is shown in the last frame when they all turn purple. I action this from a popup radial menu.
I should point out that the image I'm using to test the grid on, is a pretty poor one. It's a picture of a checkerboard pattern I printed on A4 paper. And when I took the picture, the paper was warped! So I won't use this for real world data. I'll create a chart that I can use properly. More on this below.
The interface is simple (they all are). But it's provided a fast way to create a grid for calibration. I can add a grid, expand it, process the corners and calculate the distortion all in under a minute. That's a fairly reasonable outcome.
I'm experimenting with different ways to make user interfaces and interactions. I've talked about radial menus previously. In this interface, I played around with clickable buttons inside the viewport. I think it works well. There's still a couple of bugs to fix, but it's definitely usable.
Now that this interface can be used, I'm going to look at getting a lens chart printed out. Given most of what I'm doing here is making it myself, I thought I'd design the chart as well. And I do have a design. I will get it professionally printed though, probably on 2A0 size. The large print size should give me enough real estate to use on a variety of camera and lenses. I'll post more on this when I have the printed chart.
There's still some work to be done on handling the calibration itself. I haven't applied it to any tracking markers yet for example. But the foundation is now there.