Инструкция по установке и настройке ros можно найти в DropBox'е. После создания рабочей среды ros скопируйте в папку src проект qrcode и каталог msg ansqrcode



Скачать 37.74 Kb.
Дата10.05.2016
Размер37.74 Kb.
Луцкий В.А.

Программа распознавания QR-кодов QRCode

Рабочий отчет RWR-2014-06-01.1

Москва, 2014 г.

Аннотация

Программа предназначена для декодирования QR-кода (распознавания текста, зашифрованного в QR-коде).


Принцип работы


Программа QRCode была написана под ОС Kubuntu при помощи Qt Creator версии 5.0. SpotServer запускается под ROS.

Распознавание QR-кодов программой производится с помощью библиотек LibDecodeQR, которая отвечает непосредственно за распознавание QR-кодов и OpenCV, которая обеспечивает работу с камерой, обработку изображения и данных поступающих с камеры.

QRCode является узлом ROS и он передает данные в определенном формате в топик response_topic, откуда можно получить рапознанный текст (в случае успешного распознания) и служебную информацию (масштаб qr-кода и статус распознавания)

Входные и выходные данные

Входные данные

1. Видеопоток с камеры.



Выходные данные:


    1. Структура result:

String text; -распознанный текст;

Int 32 status; -статус распознавания;

Int 32 size; - увеличение размера (масштаб) кода при распознавании;

Программа отсылает в топик response_topic структуры result.

Пример работы с программой


Для работы с сервером пятна необходима ОС Kubuntu версии 12.04, установленная библиотека компьютерной графики OpenCV версии 2.3.1 и система ROS с созданным рабочим окружением. Инструкция по установке и настройке ROS можно найти в DropBox'е.

После создания рабочей среды ROS скопируйте в папку src проект qrcode и каталог msg_ansqrcode.

Затем:


  1. Подключаем камеру.

  2. Запускаем консоль и вводим команду roscore.

  3. Не закрывая (!!!) предыдущую консоль открываем новую и вводим команду rosrun qrcode qrcode.

  4. На экране выведется сообщение о начале работы программы «libdecodeqr version 0.9.4-dev )» и открываются 2 окна src и bin:



Окно src Окно bin

В окне src будет выводится изображение, получаемое с камеры, в окне bin то же изображение в двухцветном варианте.

Программа будет постоянно пытаться распознать в получаемом двухцветном изображении QR-код и отправлять статус распознавания в виде сообщений в выходной топик result_topic.

В случае если программа обнаружит перед камерой QR-коде, он выделен зеленым в окне изображения камеры src, а в окне bin целиком отобразиться двухцветный вариант qr-кода, готовый к декодированию (распознаванию закодированного текста).

Окно src с обнаруженным qr-кодом qr-код в окне bin

При успешной расшифровке, расшифрованный текст будет отправлен в выходной топик result_topic.

Программные функции

Пользовательские функции


    1. int decode () – запуск процесса распознавания

Стандартные функции библиотеки OpenCV


  1. cvCreateCameraCapture(CV_CAP_ANY) — Подключение камеры. В качестве параметра указано подключение любой камеры, которая присоединена к компьютеру.

  2. cvQueryFrame(camera) — Получение кадра с камеры.

  3. сvNamedWindow ("src”, CV_WINDOW_AUTOSIZE) — устанавливает название окна

  4. cvCloneImage(camera) – создает дубликат изображения с камеры

  5. cvShowImage("bin",bin); - вывод изображения

  6. cvWaitKey(1500) – установка таймаута ожидания нажатия клавиши

  7. сvReleaseImage — удаление памяти, выделенной для хранения изображений

  8. cvEllipse(src,cvPointFrom32f(boxes[i].center),sz,boxes[i].angle,360, CV_RGB(0,255,0),2) – отрисовка элипса с заданными параметрами

  9. cvLine(src,pt,vertexes[i],CV_RGB(0,255,0),3) – отрисовка линии

  10. cvConvertImage(src,src,CV_CVTIMG_FLIP) – преобразование изображения в другой формат

  11. cvReleaseCapture(&camera); - отключение от камеры.

  12. CvDestroyAllWindows(); - удаление всех созданных окон.



Функции библиотеки libdecodeqr




  1. qr_decoder_open() – открытие нового сеанса распознования

  2. qr_decoder_set_image_buffer(decoder,src) – установить источник изображения для распознования

  3. qr_decoder_is_busy(decoder) – функция, проверяющая работает ли распознавание в данный момент

  4. qr_decoder_get_binarized_image_buffer(decoder) – получить преобразованное в двухцветный (черно-белый) вариант для распознавание

  5. qr_decoder_decode(decoder,sz) – попытка обнаружить QR-код (проверка, есть ли на изображении, полученным с камеры QR-код)

  6. qr_decoder_get_header(decoder,&header) - распознать заголовок QR-кода

  7. qr_decoder_get_body(decoder,text,text_size) – распознать тело QR-кода и получить зашифрованный в коде текст

  8. qr_decoder_get_coderegion_vertexes(decoder) – получить координаты границ QR-кода

  9. qr_decoder_get_finderpattern_boxes(decoder) – получить координаты опорных точек QR-кода

  10. qr_decoder_close(decoder) – закрыть распознавание

Луцкий В.А. Программа распознавания QR-кодов QRCode // Рабочий отчет RWR-2014-06-01.1, -М.: Robofob Lab, 2014



RWR-2014-06-01.1




База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница