GithubHelp home page GithubHelp logo

coursework_tgbot_detectqr-codes's Introduction

Telegram-бот QReator на С++ для генерации и считывания QR-кодов

Данный Telegram-bot позволяет взаимодействовать с штрих-кодами разных типов. Telegram-бот предназначен для генерации и детекции матричных штриховых кодов без использования программ для обработки изображений и наличия специальных навыков для этого. С помощью данного бота пользователь может распознавать на картинке/скриншоте штрих коды, а также генерировать новые QR-коды по определенному тексту/ссылке/номеру телефона в удобном Telegram-боте с user-friendly интерфейсом. Результатом служит сгенерированный QR-код или информация с распознанных на изображении штрих-кодов.

Запуск Команда /start Детекция QR-кода Генерация QR-кода

Для детекции бот может принимать на вход изображения с расширением .jpeg .jpg .png .svg. Для генерации бот принимает на вход текст и преобразует его в QR-код с расширением .jpeg в 4 размерах: 300x300, 40x40, 1080x1080, 1024x1024 – в пикселях.

Детекция штрих-кодов:
При обнаружении знака бот отправит сообщение с расшифрованной информацией, а также напишет, какого конкретно типа данный штрих-код. Поддерживаются линейные и двумерные: UPC/EAN-128; EAN-13; UPC-E; Code39; UPC-A; EAN-8; «Interleaved 2of5»; QR-codes

Генерация штрих-кода:
Генерируются только QR-коды (поскольку это самый распространённый вид штрих кодов и используется в 95% случаев) и происходит это по введенному тексту пользователя. Во время компиляции проекта внутри директории ~/Documents/CourseWork/coursework-main/build создается буферное изображение example1.jpeg, которое обновляется на новый QR-код при каждом запросе на генерацию и после чего выводится пользователю.

Сборка проекта

1) Установка OpenCV
Для работы программы понадобятся дополнительные библиотеки и утилиты. Для обработки изображений использовалась библиотека OpenCV. Чтобы решение заработало, надо скачать эту библиотеку с официального сайта https :// opencv. org под язык C++. Проще всего вести установку в терминале Ubuntu. Процесс установки ограничивается 5 этапами:

  1. Обновление Ubuntu
  2. Установка зависимостей
  3. Скачивание OpenCV с официальных репозиториев на GitHub
/opt$ git clone https://github.com/Itseez/opencv.git
/opt$ git clone https://github.com/Itseez/opencv_contrib.git
  1. Сборка и установка OpenCV.
/opt/opencv/release$ cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -
D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=ON -D 
BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D 
BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D 
CMAKE_INSTALL_PREFIX=/usr/local -D 
OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib/modules /opt/opencv/
  1. Проверка успешности установки OpenCV на ПК путем написания команды
$ pkg-config --modversion opencv
3.2.x

В случае, если возвращаемым результатом будет версия OpenCV, то установка прошла успешно.

2) Установка tgbot-cpp
Для работы с Telegram использовалась библиотека tgbot-cpp – библиотека С++14 для работы с Telegram bot API. Во-первых, вам нужно установить некоторые зависимости, 13 такие как Boost, и инструменты сборки, такие как CMake, если их нет. В дистрибутивах на базе Ubuntu это можно сделать с помощью:

$ sudo apt-get install g++ make binutils cmake libssl-dev libboost-system-dev 
zlib1g-dev
$ git clone https://github.com/reo7sp/tgbot-cpp 
$ cd tgbot-cpp 
$ cmake . 
$ make -j4 
$ sudo make install

3) Установка ZBAR
Для работы с штрих кодами использовалась библиотека ZBAR. Для того, чтобы ее подключить достаточно прописать в терминале:

$ sudo apt install zbar-tools

4) Сборка и инсталлирование проекта
После установки OpenCV, tg-bot, ZBAR и добавления QR-Code-Generator и tinypngout можно переходить к сборке программы с помощью CMake. Необходимо создать директорию, в которой в последствии будет билдиться проект - ../build

alt text

После чего необходимо прописать в терминале:

cmake ..
make
src/echobot

coursework_tgbot_detectqr-codes's People

Contributors

arseny5 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

gdaniil17

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.