This is a great tool. There are some things I’d like to add to it, so I started writing my own version of it in python.

Written in python, uses imageio and the ffmpeg backend to capture the camera (opencv is slow and clunky). Multi threaded, I’ve got the camera part of the tool running in its own thread. Some things

I ran into some problems with the java tool as the measurement was off from the real world. I measured a glass slide with a dial indicator and compared that to the calculated scalar value i used for a physical pixel size it was off. The difference I think is due to the java tool reading the webcam sensor at 640x480 but the webcam I’m using has an FHD sized sensor 1920x1080. When it reads at a lower resolution it’s reading a center crop of the sensor so you’d need to account for the reduction of size of cropping the sensor vs using the full sensor.

Working on the sampling part of the GUI now. I think I’ll keep the functionality mostly the same as the java tool but add some extra things like filtering out a percentage of edge cases when it’s multisampling.

Thinking it's probably a good idea to setup PyInstaller so I can build the python app into an exe file. That way people can just download and run without needing to know anything about python.

The python code can be found here:
https://github.com/bhowiebkr/laser-level-webcam

Here's a video of how the tool functions in early development.