Распознование QR/barcode с графических файлов на Python

5 000 руб. за проект
07 декабря 2023, 09:13 • 1 отклик • 85 просмотров

Этот проект создан для конкретного фрилансера, просьба не откликаться.

Создать класс на python, для распознавания графических кодов с изображений.

Источника изображений может быть 2.
1. - телеграм бот.
2. - каталог с изображениями, с вложенными под каталогами


Есть настроенная среда, VPS,
изображения получаем из телеграм в laravel/php(сделано) -> сохраняем файл на диск(сделано) -> в php запускаем скрипт python, в аргументе передаем путь к файлу изображения -> из скрипта python получаем массив с результатом распознавания.
Предполагается - что в одном сообщении телеграм будет отправлено не более одного изображения.
Работа программы начинается с получения входящего сообщения от телеграм.

Создан тестовый телеграм бот, в него отправляем изображения, с телефона или веб клиент. Отправляем картинкой, не файлом.

В классе - создать отдельный метод getFiles(), на входе - задаем каталог верхнего уровня, на выходе получаем массив с именами всех файлов изображений в заданном каталоге и подкаталогах(рекурсивно).
Расширения файлов - *.jpg , *.jpeg , *.png
Пример:
["/var/myscipt_folder/file1.jpg", "/var/myscipt_folder/qr_codes_samples/file2.jpg", "/var/myscipt_folder/qr_codes_samples/samsung/file3.png"]


Результат распознавания:
1. Если ни один файл не распознан, возвращаем пустой массив len(result) = 0 - без вложенных элементов.
2. Если есть распознанные файлы(file1.jpg и file3.jpg - распознал. file2.jpg - не распознал), возвращаем массив с результатами:
[
[
"filename": "/var/myscipt_folder/file1.jpg",
"value": "123456",
"codeType": "DataMatrix"
],
[
"filename": "/var/myscipt_folder/file2.jpg",
"value": "456789",
"codeType": "code128"
]
]


На сервере - создан экземпляр laravel - в него настроена отправка всех сообщений телеграм из бота.

Также написаны заготовки python файлов.

работа с через ssh.

Сделайте в laravel на curl - отправку результата распознавания обратно пользователю отправившему изображение.

Варианты ответного сообщения:

1. "код не найден на изображении"


2.
"значение: 123456789
тип кода: DataMatrix
"


3.
"обнаружено 3 кода на изображении

1.
значение: 123456789
тип кода: DataMatrix

2.
значение: 987654321
тип кода: DataMatrix

3.
значение: 945646521
тип кода: Code128

"