Структура приложения - AndreyCorelli/LaserTrack GitHub Wiki
Решение VisualStudio, содержащее:
Общую библиотеку
содержащую
- логику захвата и анализа изображения
- класс настроек программы, включающий описание комплекта мишеней, настроек поиска светового пятна, шаблона звука спуска и т.п.
- базовый класс упражнения и его наследников
- классы архивов результатов упражнений
Сборку unit-тестов
тестирование подготовленных изображений, сохранения / записи настроек и т.п.
Основную сборку
windows forms приложение, реализующее оговоренный функционал. Включает, как минимум, три окна - три режима:
- режим калибровки камеры / звукового шаблона / указания мышью центров мишеней с онлайн-просмотром видеопотока
- режим упражнения
- режим просмотра результатов завершенного упражнения и архива результатов
Можно предусмотреть аутентификацию пользователей - разделение архивов упражнений по пользователям.
Наследуемый код
По адресу trunk/LegacyApp размещено базовое приложение. Наследуемое приложение реализует на 80% функционал базового приложения (см. требования). Однако, лишь некоторые модули этого приложения можно использовать при разработке.
Структура старого приложения не оптимальна. Местами излишне усложнена - использование нескольких камер одновременно в процессе выполнения упражнения. Сложный и невостребованный алгоритм поиска траектории светового пятна в пределах одного снимка.
В то же время, некоторые участки кода реализованы удовлетворительно. Например, анализ захваченного изображения с разбором скан-линий пикселей. Выбор камеры - устройства ввода. Онлайн изображение с камеры с изображением крестика (центра светового пятна) поверх картинки.