Детектирование Aztec кода с помощью средств OpenCV

В данном посте было показано, как детектировать QR код с помощью средств OpenCV. В данном случае речь пойдет о кодах Aztec и Small Aztec (http://recog.ru/blog/standarts/6.html). Для детектирования кода можно использовать контурный анализ.
1. Необходимо бинаризовать изображение с помощью cvThreshold или cvAdaptiveThreshold.
2. В бинаризованном изображении найти контуры:
IplImage* Temp=cvCreateImage(cvGetSize(Image),8,1);
cvCopy(Binary,Temp);
cvFindContours( Temp, storage, &contours, sizeof(CvContour),CV_RETR_LIST  , CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) );
contours = cvApproxPoly( contours, sizeof(CvContour), storage,CV_POLY_APPROX_DP, 5, 1 );
cvReleaseImage(&Temp);



( Читать дальше )

Пример распознавания Small Aztec Code

Ниже приведен ролик, на котором показано распознавание Small Aztec Code «Test code», выполненное разработанной библиотекой http://vidikon.com/page.php?Lang=ru&PG=_sci0001. Как видно из рисунка, распознавание осуществляется на любых поворотах, и не осуществляется при смазывании (поскольку изображение сменяется быстро).

Спецификация Aztec Code (без Small Aztec)

Структура

Сравнительно молодой двухмерный код (1997 г. патентование [2]) достиг уровня мирового стандарта в 2008 году [1]. Основной особенностью кода является присутствие в нём центральной мишени, что позволяет наносить код в те места, где края могут быть заполнены какими-то цветами, в отличии, к примеру, от DataMatrix кода, в котором обязательно должна быть зона, огораживающая код от остальной части изображения. Технология Aztec кода позволяет кодировать до 3832 цифровых символов, 3067 символов алфавита или 1914 байт. Пример Aztec кода представлен на рисунке 1.


( Читать дальше )