Техническое задание
- Необходимо написать программу на Java, которая распознает, какие карты лежат на столе (только по центру картинки).
- Тестирование программы будет осуществляться на аналогичных картинках, которых нет в исходном множестве
- Допускаются ошибки в распознавании не более 3% от общего количества распознанных карт
- Нельзя использовать готовые библиотеки для распознавания текста. Необходимо написать свой алгоритм распознавания карт
- На распознавание одного файла не должно уходить более 1 секунды
- Исходный код решения задачи не должен быть длиннее 500 строк с нормальным форматированием Программу нужно предоставить в виде, готовом к запуску на Windows десктопе. Файл run.bat параметром принимает путь до папки с картинками. В консоль распечатывается результат в виде "имя файла - карты" для всех файлов папки
- Пример вывода: QcJd5h.png - QcJd5h
- Программу нужно предоставить с исходными файлами
- В исходных файлах должен быть ВЕСЬ код, который был использован для решения задачи
- Программу нужно предоставить в виде ссылки на ZIP-файл. Ссылки на репозитории, например на github, не принимаются Рекомендации:
- У автора этой задачи решение заняло 100 строк кода. У лучшего на данный момент кандидата - 160 строк. Ничего страшного, если ваше решение занимает 500 строк. Однако, если больше и это - не комментарии, то стоит задуматься Для решения задачи рекомендуется использовать следующие функции, встроенные в Java:
- Bufferedlmage img = ImagelO.read(f); - зачитка картинки из файла
- ImagelO write(img, "png', f); - запись картинки в файл
- img.getWidth(); img getHeight(); - рамеры картинки
- Bufferedlmage img1 = img.getSubimage(x, y, w, h); - взятие области в картинке
- img. getRGB(x, y); - взятие цвета точки по координате
- Color c = new Color(img.getRGB(x, y)); c.getRed(); c.getGreen(); c.getBlue (); c.equals(c1) - работа с цветом точки