Прежде всего, учитывая, что исходное изображение имеет светодиодный дисплей, и поэтому освещенная область имеет более высокую интенсивность, чем трест, я бы выполнил, скажем, преобразование цвета Yuv на исходном изображении, а затем поработал с плоскостью интенсивности(Y).
Далее, если вы знаете, что изображение хорошо выровнено (т.е. не повернуто), я бы предложил использовать отдельные горизонтальные и вертикальные краевые детекторы, а не общий детектор краев (вас не интересуют диагональные линии).Например,
sobelx = cv2.Sobel( img, cv2.CV_64F, 1, 0, ksize=5 )
sobely = cv2.Sobel( img, cv2.CV_64F, 0, 1, ksize=5 )
В противном случае вы можете использовать обнаружение контуров, чтобы найти границы цифр (хотя вам может потребоваться выполнить расширение, чтобы закрыть промежутки между сегментами светодиодов.
Далее я построюгоризонтальные и вертикальные гистограммы выходных данных этих обнаружений контуров или контуров, которые помогут вам определить «занятые» области изображения, которые содержат много краев.
Наконец, я пороговую плоскость Y и исследую каждуюРИ с моим шаблоном.