A Python 3 package for detecting numeric seven-segment displays in images and running perspective correction on them using OpenCV 4.
detect_box_sequences()
first applies a series of filters to the input image to reduce noise, bring
out primary contours and bridge gaps between digit segments (see images.apply_filters()
). Next,
all resulting contours are analyzed by comparing their geometric properties to a set of criteria
which define what it means for a contour to resemble a seven-segment digit. Lots of assumptions are
being made here (see config.cfg
). A contour resembling a seven-segment digit is used to
instantiate a Box
object. Several boxes lined up in a row make up a box Sequence
. Sequences are
contained in a Bag
.
In other words, raw contours serve as input for an object detection pipeline which produces results in the form of a crawlable object tree.
$ brew install opencv
$ pip install numericvision
from numericvision import detect_box_sequences
box_sequences = detect_box_sequences("image.jpg")
$ python -m numericvision image.jpg