Потом для каждого пикселя проверьте красный он или нет R > 2*(G+B).
Следом найдите два баундинг бокса (для первого и второго числа). Другими словами найдите положение прямоугольников заданного размера, в которых заполненность красным максимальная.
После этого есть три варианта:
1) вырезаете изображение из найденного прямоугольника и подаете в Google Tesseract - возможно распознает, посмотрите там обучены разные наборы символов, подберите наиболее похожий.
2) обучите HOG каскады из OpenCV для распознавания каждой цифры (0 1 2 3 4 5 6 7 8 9) и применяйте их
3) примените cvFindContours после красных фильтров, получите список элементов (черточки в вашем случае) и объединяйте их в цифры и числа
Чубик Зазнайка писал(а)
обучите HOG каскады из OpenCV для распознавания каждой цифры (0 1 2 3 4 5 6 7 8 9) и применяйте их
не надо тут математики!
после нахождения bounding boxes задача сводится к тупому по-позиционному сравнению "векторов".
математики там 0.
кстати так можно даже рукописный текст, но в стиле "печатными буквами" по 1 букве распознавать, причём даже на хиленьком МК, а не на компе.
короче, ТС надо вот это тупо применить: ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%A5%D1%8D%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0
вот пример реализации:
citforum.ru/programming/delphi/recognition_2/
всё разжёвано в мелочах.
вот ещё пример:
habrahabr.ru/post/101446/ - Распознавание цифр с помощью простейшей статистики и анализа топологии
На практике красными скорее всего окажутся не только пиксели соответствующие штрихам но и разные пиксели вокруг.
Это значит что баундингбокс будет найден то левее, то правее, то выше, то ниже, то больше, то меньше. А отдельных баундингбоксов для каждой цифры может быть вообще не будет. А штрихи будут слипаться через кадр.
Поэтому для простого анализа топологии придется сделать хороший бинаризатор который разделит и найдет каждый штришок, что нетривиально.
Либо как ты выразился применить математику, например каскад.
я бы для этого смотрел на фотографии снятые их камерой в их условиях
может там свет то ярче то тусклее и граница черного с серым то видна, то нет
может там блики на стекле часто бывают, которые будут мешать
можно ее искать как вариант, если ракурс съемки более менее стабилен и мы можем ожидать что она не превращается совсем в ромб
тут новый вопрос возникает: что должна делать система распознавания когда не может распознать или когда ромбовидность заставляет сомневаться в качестве результата
хотя я бы не стал связываться все же с поиском этих фрагментов
посадил бы студента нарезать цифр из фотографий заказчика и обучил бы HOG каскад
и потом бы применял его. вообще без поиска чего либо, баундинг боксов там или еще чего. если найдет 6 цифр сгруппированых по три - гут, нет - значит данных нет, поправьте камеру
alxumuk2 писал(а)
Я, конечно, не спец по CV, но не кажется ли логичным найти границы всего индикатора (черное на сером), а потом, зная, относительные размеры и относительную позицию каждого семисегментника, находить границы цифр?
вот именно.
тем более тут задача под конкретный девайс "заточена" похоже.
тут много полезного и главное всё простым языком, без заумных формул :)