Below is a picture of my electric meter 52425.5 (approximately):

What program / technique will help me automatically read the counter? Notes:
This is one of the cleaner images. Many images have static. I'm fine w / ignoring (indicating the "ERR" program) images with too much static.
The camera has a fixed mount, but the middle of each disk (bright silver dots) moves up and down between images (due to different vertical synchronization?). The centers of the set (thus the whole picture) also move a little left and right between the images, but not as much.
Additional photos and code: https://github.com/barrycarter/bcapps/tree/master/ELECREAD
My approach so far:
Break the image into separate dials.
Find the center of each set (i.e. the brightest point)
Look at the circles with different radii around the center and find the darkest corner for each circle.
Do something (not sure yet) with the darkest corners that you find to get reading.
I know that there are devices that monitor your counter and record / broadcast how many “cycles” they saw (each cycle = 7.5 watt-hours on most meters). However, these devices are expensive, and cannot “catch up” if they missed a few readings.
Any thoughts?
UPDATE: it is FAR from perfection, but https://github.com/barrycarter/bcapps/blob/master/ELECREAD/bc-elec-read.pl now correctly reads 6 out of 100 test images, incorrectly reads 8 out of 100 to test images and reject the remaining 86 test images (including the ones below) as “unreadable”. In practice (and knowing the previous reliable testimony), this is slightly better.
source share