Enumerating LCD segments with OpenCV (reverse-engineering)
Автор: eleif
Загружено: 2018-10-22
Просмотров: 1287
Описание:
OpenCV is used to detect and enumerate all segments of an undocumented LCD to obtain the segment mapping. A microcontroller is used to activate all segments sequentially.
NOTE:
two segments are not detected in this video - the sources linked below have the correct segment map.
UPDATE:
The follow-up video • Enumerating LCD segments with OpenCV FASTE... speeds up the process about 16-fold.
The image/video processing is made very simple through the functions available in OpenCV.
Background subtraction is used to isolate the current segment for detection (although not strictly neccessary, using the right ROI).
The processing steps visualized in this video are:
conversion to grayscale
difference (subtraction from empty screen as reference)
thresholding
erosion (to eliminate small artifacts)
segmentation and labeling
Additionally, some plausibility tests are implemented to avoid multiple detection of the same segment across several video frames, as well as the detection of unused segments.
Once the segments are identified they can be mapped to the seven-segment digits on the LCD glass. This mapping then allows the external microcontroller to display symbols (numerals and some letters) on the LCD. A short example is shown in the video.
The source code is available via https://eleif.net/lcd-segmentation.html.
(The module shown is a PZEM-021 v5.00 panel meter. Its onboard microcontroller is held in reset by an external controller that then can write to the LCD controller, an HT1621.)
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: