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

What program/technique will help me read the meter automatically? Notes:
-
This is one of the cleaner images. Many images have static. I’m OK
w/ ignoring (having the program say “ERR”) pictures w/ too much static. -
The camera has a fixed mount, but the middle of each dial (the
bright silver points) move up and down between pictures (because of
differing vertical sync?). The dial centers (thus the entire picture)
also moves a little left and right between pictures, but not as
much. -
More pictures and some code:
https://github.com/barrycarter/bcapps/tree/master/ELECREAD -
My approach so far:
-
Break the picture into individual dials.
-
Find the center of each dial (ie, the “brightest point”)
-
Look at circles with different radii around the center and find
the darkest angle for each circle. -
Do something (not sure what yet) with the darkest angles you
find to get a reading.
-
-
I’m aware there are devices which watch your meter and
record/broadcast how many “cycles” they’ve seen (each cycle = 7.5
watt-hours on most meters). However, these devices are expensive, and
can’t “catch up” if they miss a few readings.
Any thoughts?
UPDATE: it’s FAR from perfect, but https://github.com/barrycarter/bcapps/blob/master/ELECREAD/bc-elec-read.pl now correctly reads 6 of the 100 test images, incorrectly reads 8 of the 100 test images, and rejects the other 86 test images (including the one below) as being “unreadable”. In actual practice (and when knowing previous reliable readings), it does quite a bit better.
Have a look at opencv
http://opencv.org/
http://opencv.willowgarage.com/wiki/