SDK для распознавания номерных знаков
Введение
Комплект разработчика VIT AutoSDK (SDK) предназначен для распознавания автомобильных регистрационных номеров. SDK представляет собой набор динамических библиотек и заголовочных файлов С/С++, необходимых для использования SDK в разработках прикладного уровня.
В зависимости от поставки, SDK может быть использован на машинах семейства x86 (32/64 бит) под управлением операционных систем семейства Unix (например, FreeBSD, Mac OS X, Linux) и Microsoft Windows (например, 2000, 2003, XP, Vista, Seven).
Максимальное количество работающих принципалов , а также количество обрабатываемых кадров за секунду зависит от состава поставки.
Динамические библиотеки SDK защищены и не могут быть использованы без специального аппаратного ключа входящего в состав поставки.
Состав продукта
В состав AutoSDK входит:
- файловый пакет AutoSDK;
- аппаратный ключ (разрешающий работу исполняемых файлов SDK);
<AutoSDK>
- samples ;; примеры использования SDK
- doc
- ru
- AutoSDK.pdf ;; документация разработчика
- en
- AutoSDK.pdf
- templates ;; изображения типов номерных пластин (шаблоны)
- ru
- opt
- include ;; заголовочные файлы
- Vodi ;; заголовочные файлы SDK
- Bo ;; вспомогательная библиотека
- bin [Unix] ;; программы
- vpwfetch ;; читает автомобильные номера
- bin [Windows] ;; программы, динамические библиотеки
- vpwfetch.exe ;; читает автомобильные номера
- Bo.dll ;; вспомогательная библиотека
- Bo_g.dll ;; дебаг вариант
- Vodi.dll
- Vodi_g.dll ;; дебаг вариант
- lib [Unix] ;; объектные файлы, динамические и архивные библиотеки
- <PFX>Bo<SFX> ;; вспомогательная библиотека
- <PFX>Bo_g<SFX> ;; дебаг вариант
- <PFX>Vodi<SFX>
- <PFX>Vodi_g<SFX> ;; дебаг вариант
- lib [Windows] ;; объектные файлы, стабовые и архивные библиотеки
- Bo.lib ;; стабовая библиотека Bo.dll
- Bo_g.lib ;; дебаг вариант
- Vodi.lib ;; стабовая библиотека Vodi.dll
- Vodi_g.lib ;; дебаг вариант
- libexec ;; библиотеки с неявной линковкой
- include ;; заголовочные файлы
- HASP
<PFX> - системно-зависимый префикс динамических библиотек (например, lib).
<SFX> - системно-зависимый суффикс динамических библиотек включающий версию файла и его
расширение (например, .so.2.4.0; 2.4.0.dylib, -2_4_0.dll)
Установка продукта
Мы даем только рекомендации по установке, основанные на наших традициях. Вы можете использовать другие подходы к установке, которые будут вам удобнее, основываясь на нашем примере.
Пусть AUTOSDK – путь к пакету, который вы хотите установить (о структуре пакета смотрите раздел «Состав продукта»), а INSTALLDIR - путь к директории, куда вы хотите установить продукт.
Установка под Windows
- 1. Необходимо скопировать в директорию INSTALLDIR содержимое AUTOSDK.
- 2. Добавить в пути поиска заголовочных файлов для C/C++ препроцессора путь к INSTALLDIR\opt\include. Используя Microsoft Visual Studio этоможносделатьвразделе «Additional Include Directories».
- 3. Добавить в пути поиска библиотек для линкера путь к INSTALLDIR\opt\lib. Используя Microsoft Visual Studio это можно сделать в разделе «Additional Library Directories».
- 4. Создать или добавить в переменную окружения PATH путь к INSTALLDIR\opt\bin.
- 5. Создать или добавить в переменную окружения AORP_MODULE_PATH путь к INSTALLDIR\opt\libexec\aopr\modules.
Первое приложение
Загрузка модулей
Перед началом работы с SDK необходимо загрузить модуля.
static bo_status_t _t_load_requireds(struct aorp_error *anErrPtr)
{
/*
* Будем загружать 4 базовых модуля:
* vpwf - базовый функционал
* vpwc - дополнительный функционал
* vipaz - распознаватели
* vpwi - описания номерных пластин
*/
static charconst *_s_requireds[] = {
"vpwf-ia616oa245", "vpwc-f0p1", "vipaz-mlnn", "vipaz-gm", "vpwi-ru",
NULL
};
bo_status_t status;
charconst *name, **rqp;
for (rqp = _s_requireds; NULL != (name = *rqp); ++rqp) {
status = AorpMldLoad(name, NULL, 0, 0, anErrPtr);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
}
return (BoS_NORMAL);
}
Создание принципала
Чтобы начать выполнять распознавание автомобильных номеров, необходимо создать/открыть экземпляр принципала. При его создании можно указать некоторые параметры его работы.
static aorp_object_t _t_princ_open(struct aorp_error *anErrPtr)
{
struct vodi_vpw_princ_param defaults = {
/* .enable = */true,
/* .thread_max = */0,
/* .image_width = */100,
/* .image_height = */100,
/* .image_brightnes = */0,
/* .image_contrast = */0,
/* .image_blur = */13,
/* .image_treshold = */21,
/* .image_reversed = */false,
/* .image_angle = */0,
/* .analysed_zone = */ {0},
/* .analysed_zone_count = */0,
/* .plate_size_max = */200,
/* .plate_size_min = */45,
/* .plate_inverse_analyse = */true,
/* .plate_probability_min = */15,
/* .plate_star_max = */1,
/* .md_enable = */false,
/* .md_cell_size = */0,
/* .md_threshold = */0,
/* .md_square_min = */0,
/* .md_mask = */NULL,
/* .md_mask_h_size = */0,
/* .md_mask_v_size = */0,
/* .dynamic_enable = */false
};
aorp_object_t retval;
VpwprincOpen(retval, 0, NULL, &defaults, anErrPtr);
return (retval);
}
int main(int argc, char *argv[])
{
aorp_object_t principal;
struct aorp_error *err;
...
principal = _t_princ_open(err);
...
(void)AorpRelease(principal, 0, NULL); /* отпускаемпринципал */
...
}
Конфигурация
После того как создали принципал можно настроить его к работе. В данном примере конфигурации указывается необходимость распознавать номерные знаки России. Ознакомиться с другими параметрами можно в разделе «Описание функционала».
static bo_status_t
_t_princ_configure(aorp_object_t aPrincipal, struct aorp_error *anErrPtr)
{
bo_status_t status;
struct vodi_vpw_country_id tmpl = {
/* .code = */643/* ru */,
/* .id = */0,
/* .sub_id = */0
};
assert(NULL != aPrincipal);
status = VodiprincSetparam(
aPrincipal, anErrPtr, VodiCTL_VPW_PLATE_TEMPLATE, &tmpl, 1
);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
/* другиепараметры */
status = VodiprincApplyparam(result, anErrPtr);
return (status);
}
Распознавание
Теперь все готово к распознаванию. Для этого нужно подавать изображение, запакованное в структуру vodi_image, в операцию VodiprincProcess. Каждая строка изображения должна быть выровнена на 4 байта. Также необходимо подготовить структуру vodi_vpw_optionsс дополнительными опциями (последовательный номер кадра, его временная метка и его размер). Если размер изображения изменился, то нужно еще установить параметры VodiCTL_VPW_IMAGE_WIDTHиVodiCTL_VPW_IMAGE_HEIGHTв актуальные значения.
В случае обнаружения автомобильных номеров на изображении операция вернет ансамбль результатов.
static bo_status_t
_t_princ_recognize(
aorp_object_t aPrincipal,
struct vodi_image *anImage,
size_t anAnalizeZonec,
struct vodi_rect const anAnalizeZonev[],
struct vodi_ucontext *anUserCtx,
aorp_object_t anInputEnsemble,
aorp_object_t *anOutputEnsemblePtr,
struct aorp_error *anErrPtr
)
{
bo_status_t status;
unsigned width, height;
struct vodi_vpw_options options;
options.magic = VodiK_VPW_OPTIONS_WORK_MAGIC;
options.img_seqnum = 0;
options.img_timestamp = 0;
options.imgsz.sz_width = width = anImage->img_width;
options.imgsz.sz_height = height = anImage->img_height;
status = VodiprincSetparam(
aPrincipal, anErrPtr, VodiCTL_VPW_IMAGE_WIDTH, width
);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
status = VodiprincSetparam(
aPrincipal, anErrPtr, VodiCTL_VPW_IMAGE_HEIGHT, height
);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
status = VodiprincApplyparam(aPrincipal, anErrPtr);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
status = VodiprincProcess(
aPrincipal, anImage, anAnalizeZonec, anAnalizeZonev,
anUserCtx, anInputEnsemble, anOutputEnsemblePtr,
&options, anErrPtr
);
return (status);
}
Обработка результата распознавания
Обработка результатов начинается с чтения из ансамбля.
static bo_status_t
_t_ensemble_handle(aorp_object_t anEnsemble, struct aorp_error *anErrPtr)
{
bo_status_t status;
size_t resc;
aorp_object_t resv[256], *resp;
bo_index_t from;
_Bool overflow;
assert(NULL != anEnsemble);
from = 0;
do {
status = VodiensGet(
anEnsemble, from, -1, __myc_namembs(resv), resv, anErrPtr
);
if (!BoS_DOBRE(status))
break;
resc = (size_t)status;
overflow = false;
if (__myc_namembs(resv) < resc) {
resc = __myc_namembs(resv);
from += (bo_index_t)resc;
overflow = true;
}
resp = resv;
do {
status = _t_result_handle(*resp++, anErrPtr);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
}
while (--resc);
}
while (overflow);
return (BoS_NORMAL);
}
Для каждого результата из ансамбля применяем следующую функцию. Функция читает информацию из результата в структуру vodi_vpw_result_info,используя для этого операцию VodiresFetchinfo. После завершения работы с прочитанной информацией её необходимо разрушить, используя функцию VodiResultInfoDestroy.
static bo_status_t
_t_result_handle(aorp_object_taResult, structaorp_error *anErrPtr)
{
bo_status_tstatus;
struct vodi_result_info *info;
struct vodi_vpw_result_info plateinfo;
assert(NULL != aResult);
info = (struct vodi_result_info *)&plateinfo;
VODI_RESULT_INFO_TYPE(info) = VodiK_VPW_RESULT_INFO;
status = VodiresFetchinfo(aResult, info, anErrPtr);
if (BoS_FAILURE(status)) {
return (status);
/* NOTREACHED */
}
status = _t_plateinfo_handle(&plateinfo, anErrPtr);
VodiResultInfoDestroy(info);
return (status);
}
Для прочитанной информации применяем еще одну функцию, в которой можно что-то сделать с полученным результатом.
static bo_status_t
_t_plateinfo_handle(
struct vodi_vpw_result_info *anInfo,
struct aorp_error *anErrPtr
)
{
struct vodi_plate_info_spec *pis;
struct vodi_plate *plate;
assert(NULL != anInfo);
pis = VODI_RESULT_INFO_SPEC(anInfo, plate);
plate = &pis->pis_plate_variantv[0];
/* что-то делать */
return (BoS_NORMAL);
}
Описание функционала
VpwprincOpen
- ИМЯ
- VpwprincOpen - открыть/создать принципал.
- СИНТАКСИС
#include <Vodi/objects/Vpwprinc.h>
void
__attribute__((nonnull(1,4))
VpwprincOpen(
aorp_object_t &aResultRef,
aorp_opflags_t Flags /* = 0 */,
bo_pointer_t aMemory /* = NULL */,
struct vodi_vpw_princ_param *aParm,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VpwprincOpen открывает принципал и устанавливает на него указатель aResultRef.
- Аргумент Flags дает возможность управлять процессом конструирования объекта. По умолчанию можно передавать 0.
- Аргументом aMemory можно передать указатель на память, в которой будет создан объект. По умолчанию можно передавать NULL. В этом случае конструктор объекта сам выделит память под объект.
- Через аргумент aParm нужно передать начальные параметры работы принципала. Более детальную информацию о параметрах можно получить смотря описание функции VodiprincSetparam.
- Структура vodi_vpw_princ_param содержит следующие поля:
enable | Эквивалент VodiCTL_VPW_PRINCIPAL_ENABLE. |
thread_max | Максимально количество потоков распознавания, которые при необходимости создаются в процессе работы. Значение 0 эквивалентно 1 (1 поток). Задавать значение больше чем количество ядер процессора с учетом Hyper Threading не рекомендуется. |
image_width | Эквивалент VodiCTL_VPW_IMAGE_WIDTH. |
image_height | Эквивалент VodiCTL_VPW_IMAGE_HEIGHT. |
image_brightnes | Эквивалент VodiCTL_VPW_IMAGE_BRIGHTNES. |
image_contrast | Эквивалент VodiCTL_VPW_IMAGE_CONTRAST. |
image_blur | Эквивалент VodiCTL_VPW_IMAGE_BLUR. |
image_treshold | Эквивалент VodiCTL_VPW_IMAGE_THRESHOLD. |
image_reversed | Не используется (depricated). Должен быть установлен в 0. |
image_angle | Эквивалент VodiCTL_VPW_IMAGE_ANGLE. |
analysed_zone | Эквивалент VodiCTL_VPW_IMAGE_ANALYSE_ZONE. |
analysed_zone_count | Актуальное количество элементов в массиве analysed_zone. |
plate_size_max | Эквивалент VodiCTL_VPW_PLATE_SIZE_MAX. |
plate_size_min | Эквивалент VodiCTL_VPW_PLATE_SIZE_MIN. |
plate_inverse_analyse | Эквивалент VodiCTL_VPW_PLATE_INVERSE_ANALYSE. |
plate_probability_min | Эквивалент VodiCTL_VPW_PLATE_PROBABILITY_MIN. |
plate_star_max | Эквивалент VodiCTL_VPW_PLATE_STAR_MAX. |
md_enable | Не используется (depricated). Должен быть установлен в 0. |
md_cell_size | Не используется (depricated). Должен быть установлен в 0. |
md_threshold | Не используется (depricated). Должен быть установлен в 0. |
md_square_min | Не используется (depricated). Должен быть установлен в 0. |
md_mask | Не используется (depricated). Должен быть установлен в NULL. |
md_mask_h_size | Не используется (depricated). Должен быть установлен в 0. |
md_mask_v_size | Не используется (depricated). Должен быть установлен в 0. |
dynamic_enable | Эквивалент VodiCTL_VPW_DYNAMIC_ENABLE. |
log_settings | Эквивалент VodiCTL_VPW_LOG_SETTINGS. |
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VpwprincOpen устанавливает указатель aResultRef на созданный объект. В противном случае — функция устанавливает указатель aResultRef в NULL как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
AorpRetain
- ИМЯ
- AorpRetain - захватить АОРП объект.
- СИНТАКСИС
#include <Bo/services/Ucntl.h>
ssize_t
__attribute__((nonnull(1))
AorpRetain(
aorp_object_t aThis,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция AorpRetain захватывает АОРП объект переданный аргументом aThis. В результате возвращает получившееся количество ссылок на объект.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция AorpRetain возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
AorpRelease
- ИМЯ
- AorpRelease - отпустить АОРП объект.
- СИНТАКСИС
#include <Bo/services/Ucntl.h>
ssize_t
__attribute__((nonnull(1))
AorpRelease(
aorp_object_t aThis,
aorp_opflags_t Flags /* = 0 */,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция AorpRelease отпускает АОРП объект переданный аргументом aThis.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция AorpRelease возвращает оставшееся количество ссылок на объект. Если функция вернула 0, то значит, в результате её работы объект был уничтожен. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiprincGetparam
- ИМЯ
- VodiprincGetparam -- получить параметр.
- СИНТАКСИС
#include <Vodi/services/Vodiprinc.h>
bo_status_t
__attribute__((nonnull(1))
VodiprincGetparam(
aorp_object_t aThis,
struct aorp_error *anErrPtr /* = NULL */,
int aParam,
...
);
- ОПИСАНИЕ
- Функция VodiprincGetparam возвращает значение параметра, указанного аргументом aParam. В зависимости от типа параметра, в функцию могут быть переданы дополнительные указатели, в которые будут записаны актуальные значения параметра.
- Для более детального ознакомления с доступными параметрами смотрите раздел для функции VodiprincSetparam.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiprincGetparam возвращает актуальное значение параметра, которое больше или равно 0. В зависимости от типа параметра, в функцию могут быть переданы дополнительные указателя, в которые будут записаны актуальные значения параметра.
- В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiprincSetparam
- ИМЯ
- VodiprincSetparam - установить параметр.
- СИНТАКСИС
#include <Vodi/services/Vodiprinc.h>
bo_status_t
__attribute__((nonnull(1))
VodiprincSetparam(
aorp_object_t aThis,
struct aorp_error *anErrPtr /* = NULL */,
int aParam,
...
);
- ОПИСАНИЕ
- Функция VodiprincSetparam устанавливает значение параметра, указанного параметром aParam. В зависимости от типа параметра, в функцию могут быть переданы дополнительные аргументы для установки значения.
- Доступные параметры:
VodiCTL_VPW_PRINCIPAL_ENABLE | Включить/выключить распознавание. Тип - int(boolean). |
VodiCTL_VPW_PLATE_INVERSE_ANALYSE | Включить/выключить инверсный анализ изображения. Тип - int(boolean). |
VodiCTL_VPW_PLATE_PROBABILITY_MIN | Минимальное значение специальной характеристики номера, чтобы быть таковым. Тип - unsigned. |
VodiCTL_VPW_PLATE_STAR_MAX | Максимальное количество не распознанных символов на номере, чтобы быть таковым. Тип - unsigned. |
VodiCTL_VPW_PLATE_SIZE_MAX | Максимальная ширина номера (в пикселях), чтобы быть таковым. Тип - unsigned. |
VodiCTL_VPW_PLATE_SIZE_MIN | Минимальная ширина номера (в пикселях), чтобы быть таковым. Тип - unsigned. |
VodiCTL_VPW_ PLATE_EXTRA_ANGLE_ANALYSE | Включить/выключить алгоритм учета перспективы изображения номерной пластины. Тип - int(boolean). |
VodiCTL_VPW_PLATE_FILTER_ROFACTOR | Коэффициент при фильтрации номерной пластины по плотности изображения (первая стратегия). Тип - unsigned. |
VodiCTL_VPW_ PLATE_FILTER_RODROPFACTOR | Коэффициент при фильтрации номерной пластины по плотности изображения (вторая стратегия). Тип - unsigned. |
VodiCTL_VPW_ PLATE_IMAGE_SCALE_FACTOR | Коэффициент изменения размера изображения для дальнейшего поиска номерных пластин. Взаимоисключающий с параметром VodiCTL_VPW_PLATE_IMAGE_SIZE. Тип – structvodi_scale_factor *. |
VodiCTL_VPW_PLATE_IMAGE_SIZE | Необходимый размер изображения для дальнейшего поиска номерных пластин. Взаимоисключающий с параметром VodiCTL_VPW_ PLATE_IMAGE_SCALE_FACTOR. Тип - struct vodi_size *. |
VodiCTL_VPW_PLATE_TEMPLATE | Включить/выключить шаблон,указываемый первым аргументом. Второй аргумент определяет, что нужно сделать (0 - выключить, !0 - включить). Тип первого аргумента – struct vodi_vpw_country_id *. Тип второго аргумента - int(boolean). |
VodiCTL_VPW_PLATE_FILTER_SYMCOUNT | Включить/выключить алгоритм простого фильтра номерной пластины по минимальному количеству возможных символов на ней. Тип - int(boolean). |
VodiCTL_VPW_IMAGE_WIDTH | Ширина (в пикселях) текущего анализируемого изображения. Тип - unsigned. |
VodiCTL_VPW_IMAGE_HEIGHT | Высота (в пикселях) текущего анализируемого изображения. Тип - unsigned. |
VodiCTL_VPW_IMAGE_BRIGHTNES | Корректировка яркости изображения перед анализом. Используется в случае недостаточной или избыточной яркости изображения. Тип – int. Диапазон значений –[-100, 100]. |
VodiCTL_VPW_IMAGE_CONTRAST | Корректировка контраста изображения перед анализом. Используется в случае недостаточного или избыточного контраста. Тип – int. Диапазон значений - [-100, 100]. |
VodiCTL_VPW_IMAGE_BLUR | Рекомендуется использовать значение 13. Используется для внутренних потребностей. Тип – int. |
VodiCTL_VPW_IMAGE_THRESHOLD | Рекомендуется использовать значение 21. Порог бинаризации цветных пикселей в черно белые. Используется для внутренних потребностей. Тип – unsigned. |
VodiCTL_VPW_IMAGE_ANALYSE_ZONE | Массив зон распознавания, где предположительно появится номер. Тип первого аргумента– struct void_rect *. Тип второго аргумента – unsigned. |
VodiCTL_VPW_IMAGE_AZONE_MASK | Изображение-маска области анализа. Тип - struct vodi_image *. |
VodiCTL_VPW_IMAGE_ANGLE | Поворот исходного изображения на угол (т.е. все изображение поворачивается на угол, чтобы номерные пластины были горизонтально перед анализом). Тип – int. Диапазон значений - [-180, 180]. |
VodiCTL_VPW_DYNAMIC_ENABLE | Включить/выключить режим «динамики». Тип - int(boolean). |
VodiCTL_VPW_DYNAMIC_OUTPUT_TIMEOUT | Минимально необходимое время (в микросекундах) наблюдения за номерной пластиной, чтобы выдать её пользователю. Тип - bo_usec_t. |
VodiCTL_VPW_DYNAMIC_OUTPUT_PERIOD | Период (в микросекундах) выдачи номерной пластины пользователю. Данный параметр имеет место только при установленном параметре VodiCTL_VPW_DYNAMIC_WITH_DUPLICATE. Тип - bo_usec_t. |
VodiCTL_VPW_DYNAMIC_WITH_DUPLICATE | Включить/выключить периодическую выдачу номерных пластин. Тип - int(boolean). |
VodiCTL_VPW_ DYNAMIC_DURATION_WITHOUT_ACCESS | Максимально допустимое время (в микросекундах) отсутствия наблюдения номерной пластины. В случае выхода за это время, номерная пластина считается потерянной и выдается пользователю с установленным флажком VodiF_RESULT_LOST. Тип - bo_usec_t. |
VodiCTL_VPW_LOG_SETTINGS | Включить/выключить запись в лог файл список всех параметров распознавания. Тип – int(boolean). |
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiprincSetparam возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiprincApplyparam
- ИМЯ
- VodiprincApplyparam - применить параметры.
- СИНТАКСИС
#include <Vodi/services/Vodiprinc.h>
bo_status_t
__attribute__((nonnull(1))
VodiprincApplyparam(
aorp_object_t aThis,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiprincApplyparam применяет установленные параметры функцией VodiprincSetparam.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiprincApplyparam возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiprincProcess
- ИМЯ
- VodiprincProcess - проанализировать изображение.
- СИНТАКСИС
#include <Vodi/services/Vodiprinc.h>
bo_status_t
__attribute__((nonnull(1,2,7,8))
VodiprincProcess(
aorp_object_t aThis,
struct vodi_image *anImage,
size_t anAnalizeZonec /* = 0 */,
struct vodi_rect const anAnalizeZonev[] /* = NULL */,
struct vodi_ucontext const *anUserCtx /* = NULL */,
aorp_object_t anInputEnsemble /* = NULL */,
aorp_object_t *anOutputEnsemblePtr,
void *Options,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiprincProcess производит анализ изображения передаваемого параметром anImage.
- Можно указать прямоугольные области на изображении, где функция будет проводить анализ. Количество таких областей задается аргументом anAnalizeZonec, а указатель на подготовленный массив прямоугольников – аргументом anAnalizeZonev. Если передать в качестве количества областей значение 0 - то аргумент anAnalizeZonev игнорируется, а анализ будет проходить по всему изображению.
- Через аргумент anUserCtx можно передать контекст пользователя, который будет связываться с каждым результатом анализа. Детальную информацию о контексте пользователя можно найти в разделе о struct vodi_ucontext.
- Каждый результат анализа заносится в ансамбль, который можно передать аргументом anInputEnsemble. Если anInputEnsemble равен NULL – то для занесения результатов будет создан новый ансамбль.
- Ансамбль с результатами анализа передается выходным аргументом anOutputEnsemblePtr.
- Для анализа/поиска автомобильных регистрационных знаков требуется передать дополнительные параметры аргументом Options. В данном случае указатель должен быть на struct void_vpw_options. Детальную информацию о структуре параметров можно найти в соответствующем разделе.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiprincProcess возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiprincFlush
- ИМЯ
- VodiprincFlush – сбросить внутренние буфера.
- СИНТАКСИС
#include <Vodi/services/Vodiprinc.h>
bo_status_t
__attribute__((nonnull(1,3))
VodiprincFlush(
aorp_object_t aThis,
aorp_object_t anInputEnsemble /* = NULL */,
aorp_object_t *anOutputEnsemblePtr,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiprincFlush сбрасывает внутренние буфера результатов анализа в режиме “динамика”.
- Каждый результат из буфера заносится в ансамбль, который можно передать аргументом anInputEnsemble. Если anInputEnsemble равен NULL – то для занесения результатов будет создан новый ансамбль.
- Ансамбль с результатами передается выходным аргументом anOutputEnsemblePtr.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функцияVodiprincFlush возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensCount
- ИМЯ
- VodiensCount – количество результатов в ансамбле.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
ssize_t
__attribute__((nonnull(1))
VodiensCount(
aorp_object_t aThis,
struct aorp_error *anErrPtr /* = NULL */
);
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функцияVodiensCount возвращает количество результатов в ансамбле. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensClear
- ИМЯ
- VodiensClear – почистить ансамбль.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
bo_status_t
__attribute__((nonnull(1))
VodiensClear(
aorp_object_t aThis,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensClear очищает ансамбль, передаваемый аргументом aThis. При этом для всех результатов в ансамбле применяется функция AorpRelease.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функцияVodiensClear возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensAdd
- ИМЯ
- VodiensAdd – добавить результат.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
bo_status_t
__attribute__((nonnull(1,2))
VodiensAdd(
aorp_object_t aThis,
aorp_object_t aResult,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensAdd добавляет результат, передаваемый аргументом aResult к ансамблю аргумента aThis. При этом для результата применяется функция AorpRetain.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensAdd возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensRemove
- ИМЯ
- VodiensRemove – забрать результат.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
bo_status_t
__attribute__((nonnull(1,3))
VodiensRemove(
aorp_object_t aThis,
bo_index_t anIndex,
aorp_object_t *aResultPtr,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensRemove забирает результат из ансамбля.
- Аргументом anIndex указывается порядковый номер результата в ансамбле (нумерация начинается с 0), который нужно забрать. Если передать отрицательное значение, то выбор результата будет с конца ансамбля.
- Забранный результат записывается в выходной аргумент aResultPtr.
- К забранному результату не применяется операции AorpRetain/AorpRelease.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensRemove возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensDelete
- ИМЯ
- VodiensDelete – удалить результат.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
bo_status_t
__attribute__((nonnull(1))
VodiensDelete(
aorp_object_t aThis,
bo_index_t anIndex,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensDelete удаляет результат из ансамбля.
- Аргументом anIndex указывается порядковый номер результата в ансамбле (нумерация начинается с 0), который нужно удалить. Если передать отрицательное значение, то выбор результата будет с конца ансамбля.
- К выбранному результату будет применена функция AorpRelease.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensDelete возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensGet
- ИМЯ
- VodiensGet – получить результаты.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
ssize_t
__attribute__((nonnull(1))
VodiensGet(
aorp_object_t aThis,
bo_index_t aFrom,
bo_index_t aTo,
size_t aCount,
aorp_object_t aResultv[],
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensGet выбирает результаты из ансамбля, передаваемого аргументом aThis.
- Результаты выбираются в диапазоне указанном индексами [aFrom, aTo]. Если индекс имеет отрицательное значение, то значит, он указывает на элемент с конца ансамбля.
- Аргументом aCount указывается максимальное количество результатов, которые можно записать в буфер aResultv. Если выбирается больше результатов чем можно записать, то это не приводит к ошибке.
- К выбранным результатам не применяются операции AorpRetain/AorpRelease.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensGet возвращает выбранное количество результатов (может быть больше чем указано в аргументе aCount). В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensUnique
- ИМЯ
- VodiensUnique – уникальные результаты.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
ssize_t
__attribute__((nonnull(1,2))
VodiensUnique(
aorp_object_t aThis,
aorp_object_t aPrincipal,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensUnique оставляет только уникальные результаты в ансамбле, передаваемого аргументом aThis.
- Аргумент aPrincipal должен указывать на принципал, с помощью которого будет производиться данная операция.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensUnique возвращает количество оставшихся результатов. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensCombine
- ИМЯ
- VodiensCombine – объединить результаты.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
ssize_t
__attribute__((nonnull(1,2))
VodiensCombine(
aorp_object_t aThis,
aorp_object_t aPrincipal,
int anWithMerge,
size_t anEnsc,
aorp_object_t anEnsv[],
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensCombine объединяет ансамбли в один результирующий, передаваемый аргументом aThis.
- Аргумент aPrincipal должен указывать на принципал, с помощью которого будет производиться данная операция.
- В случае ненулевого значения аргумента anWithMerge, функция оставит в результате только уникальные результаты.
- Количество и массив ансамблей к объединению задаются аргументами anEnsc и anEnsv соответственно. Результаты из данных ансамблей будут удалены.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensCombine возвращает количество оставшихся результатов. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiensCombine_v2
- ИМЯ
- VodiensCombine_v2 – объединить результаты.
- СИНТАКСИС
#include <Vodi/services/Vodiens.h>
ssize_t
__attribute__((nonnull(1,2))
VodiensCombine_v2(
aorp_object_t aThis,
aorp_object_t aPrincipal,
aorp_opflags_t Flags,
size_t anEnsc,
aorp_object_t anEnsv[],
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiensCombine_v2 объединяет ансамбли в один результирующий, передаваемый аргументом aThis.
- Аргумент aPrincipal должен указывать на принципал, с помощью которого будет производиться данная операция.
- Количество и массив ансамблей к объединению задаются аргументами anEnsc и anEnsv соответственно.
- В операцию могут быть переданы аргументом Flags следующие флажки:
VodiensF_COMBINE_WITH_MERGE | Оставить только уникальные результаты. |
VodiensF_COMBINE_WITH_DUP | Не удалять результаты из ансамблей, передаваемых аргументом anEnsv, а делать их копии. |
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiensCombine_v2 возвращает количество оставшихся результатов. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiresGetuserdata
- ИМЯ
- VodiresGetuserdata - получить контекст пользователя.
- СИНТАКСИС
#include <Vodi/services/Vodires.h>
bo_status_t
__attribute__((nonnull(1,2))
VodiresGetuserdata(
aorp_object_t aThis,
struct vodi_ucontext *anUserCtx,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiresGetuserdata возвращает контекст пользователя, записывая его по указателю anUserCtx.
- К контексту пользователя не применяется операция VODI_UCONTEXT_DRetain.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiresGetuserdata возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiresSetuserdata
- ИМЯ
- VodiresSetuserdata - установить контекст пользователя.
- СИНТАКСИС
#include <Vodi/services/Vodires.h>
bo_status_t
__attribute__((nonnull(1,2))
VodiresSetuserdata(
aorp_object_t aThis,
struct vodi_ucontext *anUserCtx,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiresSetuserdata устанавливает контекст пользователя, передаваемый аргументом anUserCtx.
- К контексту пользователя применяется операция VODI_UCONTEXT_DRetain.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiresSetuserdata возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiresFetchinfo
- ИМЯ
- VodiresFetchinfo - прочитать информацию.
- СИНТАКСИС
#include <Vodi/services/Vodires.h>
bo_status_t
__attribute__((nonnull(1,2))
VodiresFetchinfo(
aorp_object_t aThis,
struct vodi_result_info *anInfo,
struct aorp_error *anErrPtr /* = NULL */
);
- ОПИСАНИЕ
- Функция VodiresFetchinfo читает информацию о результате в буфер, указанный аргументом anInfo.
- Требуется, чтобы было установлено поле ri_type аргумента anInfo. Доступны следующие значения:
VodiK_VPW_RESULT_INFO | Информация о номере. anInfo должен указывать на структуру vodi_vpw_result_info. |
VodiK_FCW_RESULT_INFO | Зарезервировано. |
- Пользователь должен уничтожить информацию, записанную в буфер указанный через параметр anInfo, вызовом для её функции VodiResultInfoDestroy.
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- В случае успеха функция VodiresFetchinfo возвращает значение больше или равно 0. В противном случае - функция возвращает отрицательное значение как статус ошибки и заполняет её описание в структуру указанную аргументом anErrPtr.
VodiResultInfoDestroy
- ИМЯ
- VodiResultInfoDestroy -- разрушить информацию о результате.
- СИНТАКСИС
#include <Vodi/Vodilib.h>
void
__attribute__((nonnull(1))
VodiResultInfoDestroy(
struct vodi_result_info *anInfo
);
- ОПИСАНИЕ
- Функция VodiResultInfoDestroy разрушает информацию о результате, указанную аргументом anInfo. Используется в паре с функцией VodiresFetchinfo.
struct void_vpw_country_id
- ИМЯ
- struct vodi_vpw_country_id - идентификатор шаблона номерной пластины.
- СИНТАКСИС
#include <Vodi/Vpwtypes.h>
struct vodi_vpw_country_id {
unsigned int code;
unsigned int id;
unsigned int sub_id;
};
- ОПИСАНИЕ
code | Код страны ISO 3166. |
id | Идентификатор шаблона (о доступных шаблонах смотри раздел «Шаблоны номерных пластин»). Допускается устанавливать в 0. В этом случае действие будет произведено ко всем шаблонам страны, указанной в поле code. |
sub_id | Зарезервирован, должен быть установлен в 0. |
struct void_image
- ИМЯ
- struct vodi_image - изображение.
- СИНТАКСИС
#include <Vodi/Types.h>
struct vodi_image {
unsigned img_flags;
long img_width; /* in pixels */
long img_height; /* in pixels */
unsigned img_bpp; /* bits per pixel */
bo_pointer_t img_base;
};
- ОПИСАНИЕ
img_flags | Устанавливать в VodiF_IMAGE_PLAIN. |
img_width | Ширина изображения. |
img_height | Высота изображения. |
img_bpp | Количество бит на пиксель. Устанавливать в 8. |
img_base | Указатель на первую строку изображения. Каждая строка изображения должна быть выровнена на 4 байта. |
struct void_vpw_options
- ИМЯ
- struct vodi_vpw_options - дополнительные параметры анализа.
- СИНТАКСИС
#include <Vodi/Vpwtypes.h>
struct vodi_vpw_options {
int magic;
vodi_size_t imgsz; /* original-image-size */
u_int32_t img_seqnum; /* original image sequence mark */
bo_utime_t img_timestamp; /* original image timestamp */
};
- ОПИСАНИЕ
magic | Должен быть установлен в VodiK_VPW_OPTIONS_WORK_MAGIC. |
imgsz | Размер изображения передаваемого в функцию VodiprincProcess. |
img_seqnum | Порядковый номер изображения. |
img_timestamp | Временная метка изображения (в микросекундах). Позволяет проводить временной анализ при слежении за номерными пластинами. Используется в режиме работы «динамика», а также функциями VodiensUnique, VodiensCombine в режиме «WithMerge» и VodiensCombine_v2 с флажком VodiensF_COMBINE_WITH_MERGE. |
struct vodi_ucontext
- ИМЯ
- struct vodi_ucontext - контекст пользователя.
- СИНТАКСИС
#include <Vodi/Types.h>
struct vodi_ucontext {
vodi_uctx_dup_fn uctx_dup;
vodi_udata_retain_fn uctx_dretain;
vodi_udata_release_fn uctx_drelease;
vodi_uctx_change_fn uctx_change;
bo_pointer_t uctx_udata;
};
- ОПИСАНИЕ
- Контекст пользователя, который можно передавать в функцию VodiprincProcess. Он будет связан с каждым полученным результатом при анализе данного изображения.
- При связывании контекста с результатом, для контекста вызывается операция, указанная в поле uctx_dretain. Если значение этого поля равно NULLF, то вызов операции не происходит.
- В процессе работы функции VodiprincProcess бывает потребность дублировать имеющийся результат. В этом случае, для связанного контекста вызывается операция, указанная в поле uctx_dup. Если значение этого поля равно NULLF, то вызов операции не происходит.
- Когда результат уничтожается, то для связанного с ним контекста вызывается операция, указанная в поле uctx_drelease. Если значение этого поля равно NULLF, то вызов операции не происходит.
- В режиме работы «динамика» происходят объединения результатов полученных на разных изображениях. В этом случае, для контекстов связанных с результатами вызывается операция, указанная в поле uctx_change. Если значение этого поля равно NULLF, то вызов операции не происходит.
- Поле uctx_udata может указывать на интересующие данные пользователя.
struct void_plate_info_spec
- ИМЯ
- struct vodi_plate_info_spec - спецификация результата распознавания.
- СИНТАКСИС
#include <Bo/aorp/Vpwtypes.h>
struct vodi_plate_info_spec {
size_t pis_plate_variantc;
vodi_plate_t pis_plate_variantv[VodiL_VPW_VARIANT_MAX];struct_void_image
vodi_rect_t pis_outer_rect;
vodi_rect_t pis_exact_rect;
_Bool pis_inversed;
vodi_motiondir_t pis_direction;
double pis_angle;
double pis_speed;
size_t pis_index;
unsigned pis_flags;
_Bool pis_move_in;
size_t pis_status;
vodi_ucontext_t pis_uctx;
vodi_image_t pis_image;
bo_utime_t pis_bftime;
bo_utime_t pis_ctime;
bo_utime_t pis_ltime;
vodi_size_t pis_imgsz;
u_int32_t pis_seqnum;
};
- ОПИСАНИЕ
pis_plate_variantc | Количество вариантов номерной пластины. |
pis_plate_variantv | Массив вариантов номерных пластин. |
pis_outer_rect | Прямоугольная область номера, заданная относительно изображения. |
pis_exact_rect | Прямоугольная область номера, заданная относительно изображения. В отличие от pis_outer_rect, вычислена более точным образом. |
pis_inversed | Признак инверсного номера. |
pis_direction | Направление движения номерной пластины. |
pis_angle | Угол наклона номерной пластины. |
pis_speed | Скорость движения номерной пластины. |
pis_index | Идентификатор номерной пластины. |
pis_flags | Доступны следующие флажки:
VodiF_RESULT_DUP Результат-дубликат. Устанавливается в режиме работы «динамика» с параметром VodiCTL_VPW_DYNAMIC_WITH_DUPLICATE. VodiF_RESULT_LOST Результат – потерян. Устанавливается в режиме работы «динамика», когда принимается решение о том, что объект вышел из зоны видимости. VodiF_RESULT_INVALID Результат – неверен. Устанавливается в режиме работы «динамика», когда принимается решение о том, что данный результат является следствием некого другого результата. |
pis_move_in | Зарезервировано. |
pis_status | Зарезервировано. |
pis_uctx | Контекст пользователя. |
pis_image | Изображение номерной пластины. |
pis_bftime | Временная метка лучшего кадра, где был распознан номер. |
pis_ctime | Временная метка кадра, где впервые был распознан номер. |
pis_ltime | Временная метка кадра, где в последний раз был распознан номер. |
pis_imgsz | Зарезервировано. |
pis_seqnum | Зарезервировано. |
struct void_plate
- ИМЯ
- struct vodi_plate – номерная пластина.
- СИНТАКСИС
#include <Bo/aorp/Vpwtypes.h>
struct vodi_plate_info {
wchar_t pv_plate_string[VodiL_VPW_SYMBOL_MAX + 1];
wchar_t pv_plate_type[VodiL_VPW_SYMBOL_MAX + 5];
u_int32_t pv_plate_id;
u_int32_t pv_country_id;
float pv_validity;
float pv_min_symb_validity;
float pv_max_geom_deviation;
float pv_max_symb_validity;
float pv_avg_symb_validity;
float pv_avg_geom_deviation;
u_int32_t pv_background;
u_int32_t pv_sym_color;
size_t pv_symbolc;
vodi_plate_symbol_t pv_symbolv[VodiL_VPW_SYMBOL_MAX];
};
- ОПИСАНИЕ
pv_plate_string | Юникод строка номерной пластины. |
pv_plate_type | Тип номера, задаваемый строкой:
z Маленькая буква. Z Большая буква. x Цифра.| Пробел между символами. |
pv_plate_id | Идентификатор подходящего шаблона (см. “Шаблоны номерных пластин”). |
pv_country_id | Код страны ISO 3166. |
pv_validity | Характеристика качества распознавания. |
pv_min_symb_validity | Зарезервировано. |
pv_max_geom_deviation | Зарезервировано. |
pv_max_symb_validity | Зарезервировано. |
pv_avg_symb_validity | Зарезервировано. |
pv_avg_geom_deviation | Зарезервировано. |
pv_background | Цвет фона номерной пластины. |
pv_sym_color | Цвет символов на номерной пластине. |
pv_symbolc | Количество символов на номерной пластине. |
pv_symbolv | Массив символов. |
struct aorp_error
- ИМЯ
- struct aorp_error - описание ошибки.
- СИНТАКСИС
#include <Bo/aorp/Types.h>
struct aorp_error {
char const *func;
char const *file;
long line;
bo_status_t status;
syserrcode_t syserr;
unsigned msgidx;
unsigned bufsz;
char *msg;
};
- ОПИСАНИЕ
func | Имя функции, где возникла ошибка. Опциональное поле, обычно заполняется только в отладочных версиях программ. |
file | Путь к файлу, в котором реализована функция, где возникла ошибка. Опциональное поле, обычно заполняется только в отладочных версиях программ. |
line | Номер строки в файле file где возникла ошибка. Опциональное поле, имеет смысл только если file не равен NULL. |
status | Содержит код ошибки (см. <Bo/Errors.h>) c условной областью, в которой эта ошибка возникла. |
syserr | Код ошибки принятой в данной системе. Если ситуация не вынуждает использовать коды ОС, то используются коды ошибок POSIX. |
msgidx | Порядковый номер сообщения (см. <Bo/SMessages.h>). |
bufsz | Размер буфера (в байтах) на который указывает поля msg. |
msg | Указатель на строку, которая описывает ошибку. |
Термины
- АОРП объект - это представитель множества АОРП объектов, в которое, в том числе, входит Vpwprinc (принципал), Vpwens (ансамбль) и Vpwres (результат).
- Принципал (Vpwprinc) - это объект, на котором (помимо прочих) введена операция распознавания автомобильных регистрационных номеров (VodiprincProcess).
- Ансамбль (Vpwens) - список результатов распознавания автомобильных регистрационных номеров.
- Результат (Vpwres) - представитель множества результата распознавания автомобильных регистрационных номеров.
- Общая библиотека (Shared library) - библиотека общего использования, также известная как динамическая библиотека.
- Архивная библиотека (Archive library) - библиотека архивного типа, также известная как статическая библиотека.
- Библиотека заготовок (Stub library) - используется в операционной системе Windows для линковки с динамической библиотекой.
Шаблоны номерных пластин
В папке /doc/templates находятся папки с названием и кодом страны, внутри которых находятся изображения типов номерных пластин. Имя изображения соответствует идентификатору шаблона в SDK. Данный идентификатор и код страны используется структурами struct vodi_vpw_country_id и struct vodi_plate.
Таблица выбора модуля vpwc соответственно вашей лицензии
Тип лицензии | Название модуля |
---|---|
6 к/c, 1 канал | vpwc-f6p1 |
6 к/c, 2 канала | vpwc-f6p2 |
6 к/c, 3 канала | vpwc-f6p3 |
6 к/c, 4 канала | vpwc-f6p4 |
6 к/c, 5 каналов | vpwc-f6p5 |
6 к/c, 6 каналов | vpwc-f6p6 |
6 к/c, 7 каналов | vpwc-f6p7 |
6 к/c, 8 каналов | vpwc-f6p8 |
6 к/c, 9 каналов | vpwc-f6p9 |
6 к/c, 10 каналов | vpwc-f6p10 |
6 к/c, 11 каналов | vpwc-f6p11 |
6 к/c, 12 каналов | vpwc-f6p12 |
6 к/c, 13 каналов | vpwc-f6p13 |
6 к/c, 14 каналов | vpwc-f6p14 |
6 к/c, 15 каналов | vpwc-f6p15 |
6 к/c, 16 каналов | vpwc-f6p16 |
25 к/c, 1 канал | vpwc-f0p1 |
25 к/c, 2 канала | vpwc-f0p2 |
25 к/c, 3 канала | vpwc-f0p3 |
25 к/c, 4 канала | vpwc-f0p4 |
25 к/c, 5 каналов | vpwc-f0p5 |
25 к/c, 6 каналов | vpwc-f0p6 |
25 к/c, 7 каналов | vpwc-f0p7 |
25 к/c, 8 каналов | vpwc-f0p8 |
25 к/c, 9 каналов | vpwc-f0p9 |
25 к/c, 10 каналов | vpwc-f0p10 |
25 к/c, 11 каналов | vpwc-f0p11 |
25 к/c, 12 каналов | vpwc-f0p12 |
25 к/c, 13 каналов | vpwc-f0p13 |
25 к/c, 14 каналов | vpwc-f0p14 |
25 к/c, 15 каналов | vpwc-f0p15 |
25 к/c, 16 каналов | vpwc-f0p16 |
SDK_for_number_plate_recognition SDK_для_распознавания_номерных_знаков