Enumerations
WAGON_NUMBER_TYPE

Wagon number type

RAILWAY_GAUGE_1520

Wagon number (8-digits number) for railways gauge 1520 mm. This gauge became commonly known as Russian and CIS countries gauge.

UIC_NUMBER

UIC wagon numbers (or coach numbers) consisting of  12 digits.

WNR_RESULTS_SENDING_MODE

Defines the mode of sending results from the WNR engine (in video mode only)

WNR_RESULTS_SENDING_ALL

send all recognized wagon numbers

WNR_RESULTS_SENDING_BESTCONFIDENCE

send only the wagon number with the best confidence value

WNR_RESULTS_SENDING_LARGESTAREA

send only the wagon number with the largest area

WNR_RESULTS_SENDING_NEARESTTOCENTER

send only the wagon number nearest to the center of the image

Types
WNRENGINE

Handle of WNREngine object

Used to handle pointer (void *) to WNREngine object

WNRPARAMS

Handle of WNRParams object

Used to handle pointer (void *) to WNRParams object

WNRRESULT

Handle of WNRResult object

Used to handle pointer (void *) to WNRResult object

WNRNUMBER

Handle of WagonNumber object

Used to handle pointer (void *) to WagonNumber object

Callbacks
WagonNumberDetectedCallback

Invokes by WNREngine object on wagon number detection

Parameters
hEngine

Handle of WNREngine object

hFrame

Handle of VideoFrame object that was sent as a parameter of the WNREngine_PutFrame function

hWagonNum

Handle of WagonNumber object

Notes

WagonNumber object must be deleted using function WagonNumber_Destroy

FrameProcessingCompletedCallback

Invokes by WNREngine object on the video frame processing completion event

Parameters
hEngine

Handle of WNREngine object

frame

Handle of VideoFrame object that was sent as a parameter of the WNREngine_PutFrame function

status

integer value containing the status of the processed video frame

Notes

The possible values of the status:

0

the video processed successfully

1

the video frame dropped due to lack of resources

2

the video frame dropped due to defined FPS limit. See WNRParams_get_FPSLimit

Do NOT use long time operations inside this callback, it may block and slow down the video processing.

WNREngine Functions
WNREngine_Create
WNRENGINE DTKWNRAPI WNREngine_Create(
hParams,
bool 
bVideo,
wagonNumberDetectedCallback
)

Create new WNREngine instance

Parameters
hParams

Handle of WNRParams object

bVideo
bool

If this value is true, the engine will be initialized in video mode, otherwise - in still image mode

wagonNumberDetectedCallback

WagonNumberDetectedCallback function (for video mode), use Null for still image mode

Return

Handle of WNREngine object

WNREngine_Destroy
void DTKWNRAPI WNREngine_Destroy(
hEngine
)

Destroy WNREngine instance

Parameters
hEngine

Handle of WNREngine object

WNREngine_SetFrameProcessingCompletedCallback
void DTKWNRAPI WNREngine_SetFrameProcessingCompletedCallback(
hEngine,
callback
)

Sets the FrameProcessingCompletedCallback function

Parameters
hEngine

Handle of WNREngine object

callback

FrameProcessingCompletedCallback function (for video mode only)

Notes

Default value is Null

This callback can be used to count the number of video frames that were dropped during video processing.

WNREngine_ReadFromFile
WNRRESULT DTKWNRAPI WNREngine_ReadFromFile(
hEngine,
const 
char
fileName
)

Reads wagon numbers from image file (JPEG, BMP, PNG)

Parameters
hEngine

Handle of WNREngine object

fileName
const char*

Path to image file

Return

Handle of WNRResult object

Notes

WNRResult object must be deleted using function WNRResult_Destroy This function can be used for still image mode only.

WNREngine_ReadFromMemFile
WNRRESULT DTKWNRAPI WNREngine_ReadFromMemFile(
hEngine,
void
pBuffer,
int 
bufferSize
)

Reads wagon numbers from image file (JPEG, BMP, PNG) contained in the memory

Parameters
hEngine

Handle of WNREngine object

pBuffer
void*

Pointer to a memory buffer containing the image file data

bufferSize
int

size of memory buffer in bytes

Return

Handle of WNRResult object

Notes

WNRResult object must be deleted using function WNRResult_Destroy This function can be used for still image mode only.

WNREngine_ReadFromURL
WNRRESULT DTKWNRAPI WNREngine_ReadFromURL(
hEngine,
const 
char
url
)

Reads wagon numbers from image file (JPEG, BMP, PNG) from URL

Parameters
hEngine

Handle of WNREngine object

url
const char*

URL string, example: http://​domain​.com​/image​.jpg

Return

Handle of WNRResult object

Notes

WNRResult object must be deleted using function WNRResult_Destroy This function can be used for still image mode only.

WNREngine_ReadFromImageBuffer
WNRRESULT DTKWNRAPI WNREngine_ReadFromImageBuffer(
hEngine,
void
pBuffer,
int 
width,
int 
height,
int 
stride,
pixelFormat
)

Reads wagon numbers from image buffer

Parameters
hEngine

Handle of WNREngine object

pBuffer
void*

Pointer to buffer of image pixels data

width
int

Width of image in pixels

height
int

Height of image in pixels

stride
int

Size of one image row in bytes

pixelFormat

Pixel format, PIXFMT enumeration

Return

Handle of WNRResult object

Notes

WNRResult object must be deleted using function WNRResult_Destroy

This function can be used for still image mode only.

WNREngine_PutFrame
int DTKWNRAPI WNREngine_PutFrame(
hEngine,
hFrame,
int64 
customData
)

Send video frame to engine (for video mode only)

Parameters
hEngine

Handle of WNREngine object

hFrame

Handle of VideoFrame object

customData
int64

Custom 64 bit integer value which can be used identify frame by recognized number. This value will be assigned to WagonNumber object.

Returns

Possible values:

0

no error

1

the engine does not have a valid license

2

the engine has a valid license but no available channel to work on

3

frame dropped due to processing queue overflow.

Notes

ATTENTION: this function will delete the hFrame object after processing this frame, so you DO NOT need to delete the hFrame object after calling this function.

WNREngine_GetProcessingFPS
int DTKWNRAPI WNREngine_GetProcessingFPS(
hEngine
)

Return current processing FPS (for video mode only)

Parameters
hEngine

Handle of WNREngine object

Returns

Current video processing FPS. It can be less then incoming FPS from camera.

Notes

This function can be used for video mode only.

WNREngine_IsQueueEmpty
bool DTKWNRAPI WNREngine_IsQueueEmpty(
hEngine
)

Gets the value indicating whether the WNR engine has processed the frame queue, and queue is empty.

Parameters
hEngine

Handle of WNREngine object

Returns
Boolean value, True

frame processing queue is empty, False - frame processing queue is not empty.

Notes

This property can be used to wait for the WNR Engine to finish its work and process all frames sent using WNREngine_PutFrameImageBuffer function.

This function can be used for video mode only.

WNREngine_IsLicensed
int DTKWNRAPI WNREngine_IsLicensed(
hEngine
)

Check if WNR engine is licensed

Parameters
hEngine

Handle of WNREngine object

Returns

Returns value 0 in case the engine have valid license

Returns value 1 in case the engine does not have valid license

Returns value 2 in case the engine have valid license, but have not available channel to work

Returns value 3 in case the engine cannot validate trial license (for trial version only)

CUDA Functions
WNREngine_GetCompatibleCudaDeviceCount
int DTKWNRAPI WNREngine_GetCompatibleCudaDeviceCount()

Returns the number of compatible CUDA devices found in the system

Returns

Number of compatible CUDA devices

Notes

This function works only if the library is built with CUDA support. For non-CUDA builds this function always returns -1.

WNREngine_GetCompatibleCudaDeviceId
int DTKWNRAPI WNREngine_GetCompatibleCudaDeviceId(
int 
index
)

Returns the CUDA device ID of compatible CUDA device by index

Parameters
index
int

Index of compatible CUDA device (0..N-1), where N is the number of compatible CUDA devices returned by WNREngine_GetCompatibleCudaDeviceCount

Returns

CUDA device ID, or -1 if index is out of range

Notes

This function works only if the library is built with CUDA support. For non-CUDA builds this function always returns -1.

WNREngine_GetCompatibleCudaDeviceName
int DTKWNRAPI WNREngine_GetCompatibleCudaDeviceName(
int 
index,
char
buffer,
int 
buf_size
)

Returns the CUDA device name of compatible CUDA device by index

Parameters
index
int

Index of compatible CUDA device (0..N-1), where N is the number of compatible CUDA devices returned by WNREngine_GetCompatibleCudaDeviceCount

buffer
char*

Pointer to string buffer which receives device name

buf_size
int

Size of string buffer

Returns

Number of bytes copied to buffer. If buffer = NULL or buf_size = 0, then function return number of bytes required to store the result string

0

if buf_size is too small to hold the result string

-1

if index is out of range

Notes

This function works only if the library is built with CUDA support. For non-CUDA builds this function always returns -1.

WNREngine_IsCudaEngineBuildRequired
bool DTKWNRAPI WNREngine_IsCudaEngineBuildRequired()

Checks whether the TensorRT/CUDA engine cache file exists and is valid for the current library version

Return
true

the engine cache file does exist and is valid for the current library version

false

otherwise

Notes

This function can be used to check whether the engine cache needs to be built using WNREngine_BuildCudaEngine function.

This function works only if the library is built with CUDA support. For non-CUDA builds this function always returns false.

WNREngine_BuildCudaEngine
void DTKWNRAPI WNREngine_BuildCudaEngine()

Builds the TensorRT/CUDA engine and saves it to the cache file

Notes

This function may take a long time to complete depending on the GPU performance.

If you have multiple GPUs installed in your system, the engine will be built for all GPUs found.

This function works only if the library is built with CUDA support. For non-CUDA builds this function does nothing.

License Functions
WNREngine_ActivateLicenseOnline
int DTKWNRAPI WNREngine_ActivateLicenseOnline(
const 
char
licenseKey,
const 
char
comments
)

Activates license on-line

Parameters
licenseKey
const char*

String containing the license key

comments
const char*

String containing comments to assign to activation (optional)

Returns

0 on success, error code otherwise

Notes

The Internet connection (host: dtksoft.com port: 80) is required to perform license activation The optional comments parameter can be used to identify certain license activation, for example machine name or customer name can be used.

WNREngine_ActivateLicenseOnlineEx
int DTKWNRAPI WNREngine_ActivateLicenseOnlineEx(
const 
char
licenseKey,
const 
char
comments,
int 
channels,
const 
char
security_key
)

Activates license on-line (extended)

Parameters
licenseKey
const char*

String containing the license key

comments
const char*

String containing comments to assign to activation(optional)

channels
int

Number of channels

security_key
const char*

Security key

Returns

0 on success, error code otherwise

Notes

The Internet connection (host: dtksoft.com port: 80) is required to perform license activation The optional comments parameter can be used to identify certain license activation, for example machine name or customer name can be used.  This function should be used for special licenses that support activation of a certain number of channels and/or using a security key for activation.

WNREngine_GetActivationLink
int DTKWNRAPI WNREngine_GetActivationLink(
const 
char
licenseKey,
const 
char
comments,
char
activationLink,
int 
size
)

Returns activation link to activate the defined license key

Parameters
licenseKey
const char*

String which contain license key

comments
const char*

String which contain comments assigned to activation (optional)

activationLink
char*

Pointer to string buffer which receives activation link

size
int

Size of string buffer

Returns

Number of bytes copied to buffer. If activationLink = NULL or size = 0, then function return number of bytes required to store the result string

Notes

The Internet connection (host: dtksoft.com port: 80) is required to perform license activation The optional comments parameter can be used to identify certain license activation, for example machine name or customer name can be used.

WNREngine_GetActivationLinkEx
int DTKWNRAPI WNREngine_GetActivationLinkEx(
const 
char
licenseKey,
const 
char
comments,
int 
channels,
const 
char
security_key,
char
activationLink,
int 
size
)

Returns activation link to activate the defined license key (extended)

Parameters
licenseKey
const char*

String which contain license key

comments
const char*

String which contain comments assigned to activation (optional)

channels
int

Number of channels

security_key
const char*

Security key

activationLink
char*

Pointer to string buffer which receives activation link

size
int

Size of string buffer

Returns

Number of bytes copied to buffer. If activationLink = NULL or size = 0, then function return number of bytes required to store the result string

Notes

The Internet connection (host: dtksoft.com port: 80) is required to perform license activation

The optional comments parameter can be used to identify certain license activation, for example machine name or customer name can be used.

This function should be used for special licenses that support activation of a certain number of channels and/or using a security key for activation.

WNREngine_ActivateLicenseOffline
int DTKWNRAPI WNREngine_ActivateLicenseOffline(
const 
char
activationCode
)

Activates license on machine using activation code

Parameters
activationCode
const char*

String which contain activation code

Returns

0 on success, error code otherwise

Notes

The optional comments parameter can be used to identify certain license activation, for example machine name or customer name can be used.

WNREngine_GetSystemID
int DTKWNRAPI WNREngine_GetSystemID(
char
system_id,
int 
system_id_size
)

Gets the current machine/system ID

Parameters
system_id
char*

Pointer to string buffer which receives current machine ID (fingerprint)

system_id_size
int

Size of string buffer

Returns

Number of bytes copied to buffer. If system_id = NULL or system_id_size = 0, then function return number of bytes required to store the result string

WNREngine_ReloadUSBDongles
void DTKWNRAPI WNREngine_ReloadUSBDongles()

Reload license information from USB dongles

Notes

You do not need to call this function regularly, this function call is ONLY relevant after updating the USB key to tell the engine to reload the new license information from the dongle.

WNREngine_GetLicenseInfo
void DTKWNRAPI WNREngine_GetLicenseInfo(
char
license_key,
int 
license_key_max_len,
char
comments,
int 
comments_max_len,
int
channels,
time_t* 
expirationDate,
char
usb_dongle_id,
int 
usb_dongle_id_len,
int
valid
)

Gets information about a license, either an activated software license or an plugged in USB dongle.

Parameters
license_key
char*

Pointer to string buffer which receives license key activated on current machine

license_key_max_len
int

Size of string buffer

comments
char*

Pointer to string buffer which receives activation comments

comments_max_len
int

Size of string buffer

channels
int*

Pointer to integer variable which receives number of channels of activated license

expirationDate
time_t*

Pointer to 64bit integer value (time_t C++ type) which receives expiration date of activated license

usb_dongle_id
char*

Pointer to string buffer which receives USB dongle id number

usb_dongle_id_len
int

Size of string buffer

valid
int*

Pointer to integer variable which receives boolean value 1 (true) or 0 (false), indicating whether the license is valid or not.

Notes

The function returns the following information: license key, comments, number of channels, expiration date (if applicable), USB dongle id (if applicable)

If expirationDate value is 0, then license does not expire.

If the 'valid' parameter is false, it means that this license is not suitable for the version of the library you are using. You need to renew your license or use an older version of the library.

If the license is not on a USB dongle, then usb_dongle_id will be an empty string.

WNREngine_GetLibraryVersion
int DTKWNRAPI WNREngine_GetLibraryVersion(
char
buffer,
int 
buff_size
)

Return library version

Parameters
buffer
char*

Pointer to string buffer which receives library version

buff_size
int

Size of string buffer

Returns

Number of bytes copied to buffer. If buffer = NULL or buff_size = 0, then function return number of bytes required to store the result string

WNREngine_SetNetLicenseServer
void DTKWNRAPI WNREngine_SetNetLicenseServer(
char
ip_addres,
int 
port
)

Sets information about the network license server to use for license verification.

Parameters
ip_addres
char*

IP address of the DTK license server

port
int

port number of the DTK license server, default 54300

Notes

This function enables network licensing for current process. The DTK License Server must be executed on remote or local machine.

To use local machine use ip_addres "127.0.0.1"

To disable network licensing call this function with empty ip_addres parameter.

WNRParams Functions
WNRParams_Create
WNRPARAMS DTKWNRAPI WNRParams_Create()

Creates WNRParams object instance

Returns

Handle of new WNRParams object

WNRParams_Destroy
void DTKWNRAPI WNRParams_Destroy(
hParams
)

Destroys the WNRParams object instance

Parameters
hParams

Handle of WNRParams object

WNRParams_get_WagonNumberType
WAGON_NUMBER_TYPE DTKWNRAPI WNRParams_get_WagonNumberType(
hParams
)

Gets the type of wagon number to recognize

Parameters
hParams

Handle of WNRParams object

Returns

type of wagon number, WAGON_NUMBER_TYPE enumeration value

WNRParams_set_WagonNumberType
void DTKWNRAPI WNRParams_set_WagonNumberType(
hParams,
type
)

Sets the type of wagon number to recognize

Parameters
hParams

Handle of WNRParams object

type

type of wagon number, WAGON_NUMBER_TYPE enumeration value

WNRParams_get_MinWidth
int DTKWNRAPI WNRParams_get_MinWidth(
hParams
)

Gets minimum wagon number width

Parameters
hParams

Handle of WNRParams object

Returns

Minimum wagon number width in pixels

Notes

The minimum/maximum wagon number width parameters are used to tell the engine the expected size of the wagon number on image.

Defining a narrower interval increases recognition speed and decreases CPU resources, but negatively affects recognition accuracy.

The recommended values for min/max width are -/+30% of real wagon number width. For example, if we have wagon number 200 pixels in width, then you can define values 140/260.

If the recognition accuracy is not enough, you can try to decrease minimum width to get better results.

Default value is 100. Minimum value is 70. Maximum value is 1000.

WNRParams_set_MinWidth
void DTKWNRAPI WNRParams_set_MinWidth(
hParams,
int 
minWidth
)

Sets the minimum width of the wagon number

Parameters
hParams

Handle of WNRParams object

minWidth
int

Minimum width of the wagon number in pixels

Notes

The minimum/maximum wagon number width parameters are used to tell the engine the expected size of the wagon number on image.

Defining a narrower interval increases recognition speed and decreases CPU resources, but negatively affects recognition accuracy.

The recommended values for min/max width are -/+30% of real wagon number width. For example, if we have wagon number 200 pixels in width, then you can define values 140/260.

If the recognition accuracy is not enough, you can try to decrease minimum width to get better results.

Default value is 100. Minimum value is 70. Maximum value is 1000.

WNRParams_get_MaxWidth
int DTKWNRAPI WNRParams_get_MaxWidth(
hParams
)

Gets the minimum width of the wagon number

Parameters
hParams

Handle of WNRParams object

Returns

Maximum width of the wagon number in pixels

Notes

The minimum/maximum wagon number width parameters are used to tell the engine the expected size of the wagon number on image.

Defining a narrower interval increases recognition speed and decreases CPU resources, but negatively affects recognition accuracy.

The recommended values for min/max width are -/+30% of real wagon number width. For example, if we have wagon number with 200 pixels in width, then you can define values 140/260.

If the recognition accuracy is not enough, you can try to decrease minimum width to get better results.

Default value is 500. Minimum value is 100.

WNRParams_set_MaxWidth
void DTKWNRAPI WNRParams_set_MaxWidth(
hParams,
int 
maxWidth
)

Sets the maximum width of the wagon number

Parameters
hParams

Handle of WNRParams object

maxWidth
int

Maximum width of the wagon number in pixels

Notes

The minimum/maximum wagon number width parameters are used to tell the engine the expected size of the wagon number on image.

Defining a narrower interval increases recognition speed and decreases CPU resources, but negatively affects recognition accuracy.

The recommended values for min/max width are -/+30% of real wagon number width. For example, if we have wagon number with 200 pixels in width, then you can define values 140/260.

If the recognition accuracy is not enough, you can try to decrease minimum width to get better results.

Default value is 500. Minimum value is 100.

WNRParams_get_IgnoreChecksum
bool DTKWNRAPI WNRParams_get_IgnoreChecksum(
hParams
)

Gets the value indicating whether the WNR engine can return results with incorrect checksum

Parameters
hParams

Handle of WNRParams object

Returns

Boolean value

Notes

Default value is False.

WNRParams_set_IgnoreChecksum
void DTKWNRAPI WNRParams_set_IgnoreChecksum(
hParams,
bool 
val
)

Sets the value indicating whether the WNR engine can return results with incorrect checksum

Parameters

hParams- Handle of WNRParams object val - Boolean value

Notes

Default value is False.

WNRParams_get_CudaDeviceId
int DTKWNRAPI WNRParams_get_CudaDeviceId(
hParams
)

Gets the CUDA device ID used by WNR engine

Parameters
hParams

Handle of WNRParams object

Returns

CUDA device ID. Possible values are from 0 to 9.

Notes

This property used for CUDA builds only. For CPU builds this property is ignored.

WNRParams_set_CudaDeviceId
void DTKWNRAPI WNRParams_set_CudaDeviceId(
hParams,
int 
val
)

Sets the CUDA device ID used by WNR engine

Parameters
hParams

Handle of WNRParams object

val
int

CUDA device ID to set. Possible values are from 0 to 9.

Notes

This property used for CUDA builds only. For CPU builds this property is ignored.

The list of compatible CUDA devices can be obtained using WNREngine_GetCompatibleCudaDeviceCount and WNREngine_GetCompatibleCudaDeviceId functions.

WNRParams_get_NumThreads
int DTKWNRAPI WNRParams_get_NumThreads(
hParams
)

Gets the number of recognition threads used by WNR engine

Parameters
hParams

Handle of WNRParams object

Returns

Number of threads

Notes

Default value is 3. Minimum value is 1, maximum value is 8.

This property used for video mode only

WNRParams_set_NumThreads
void DTKWNRAPI WNRParams_set_NumThreads(
hParams,
int 
numThreads
)

Sets the number of recognition threads used by WNR engine

Parameters
hParams

Handle of WNRParams object

numThreads
int

Number of threads

Notes

Default value is 3. Minimum value is 1, maximum value is 8.

This property used for video mode only.

WNRParams_get_FPSLimit
int DTKWNRAPI WNRParams_get_FPSLimit(
hParams
)

Gets the maximum FPS that the WNR engine will handle

Parameters
hParams

Handle of WNRParams object

Returns

Number of frames per second (FPS)

Notes

Default value is 0 (unlimited).

If the defined FPS limit is reached, then WNR Engine drop incoming frames.

This property used for video mode only.

WNRParams_set_FPSLimit
void DTKWNRAPI WNRParams_set_FPSLimit(
hParams,
int 
fps
)

Sets the maximum FPS that the WNR engine will handle

Parameters
hParams

Handle of WNRParams object

fps
int

number of frames per second (FPS)

Notes

Default value is 0 (unlimited).

If the defined FPS limit is reached, then WNR Engine drop incoming frames.

This property used for video mode only.

WNRParams_get_ResultsSendingMode

Gets the mode of sending results from the WNR engine (in video mode only)

Parameters
hParams

Handle of WNRParams object

mode

the enumeration value of WNR_RESULTS_SENDING_MODE

Notes

Default value is WNR_RESULTS_SENDING_ALL.

This property used for video mode only.

WNRParams_get_ResultsSendingMode

Gets the mode of sending results from the WNR engine (in video mode only)

Parameters
hParams

Handle of WNRParams object

Returns

the enumeration value of WNR_RESULTS_SENDING_MODE

Notes

Default value is WNR_RESULTS_SENDING_ALL.

This property used for video mode only.

WNRParams_get_RecognitionOnMotion
bool DTKWNRAPI WNRParams_get_RecognitionOnMotion(
hParams
)

Gets the value indicating whether the WNR engine will process moving objects only

Parameters
hParams

Handle of WNRParams object

Returns
Boolean value, True

do recognition moving object only, False - process full frames always

Notes

Default value is False.

This property used for video mode only.

WNRParams_set_RecognitionOnMotion
void DTKWNRAPI WNRParams_set_RecognitionOnMotion(
hParams,
bool 
recOnMotion
)

Sets the value indicating whether the WNR engine will process moving objects only

Parameters

hParams- Handle of WNRParams object recOnMotion - Boolean value, True - do recognition of moving object only, False - process full frames

Notes

Default value is False.

This property used for video mode only.

WNRParams_get_RotateAngle
int DTKWNRAPI WNRParams_get_RotateAngle(
hParams
)

Gets the rotation angle of the image in degrees

Parameters
hParams

Handle of WNRParams object

Returns
Rotation angle in degrees. Possible values from 0 to 359. Value 0

do not rotate image.

Notes

Default value is 0.  The input image will be rotated counterclockwise direction at defined angle (in degrees) before processing.

WNRParams_set_RotateAngle
void DTKWNRAPI WNRParams_set_RotateAngle(
hParams,
int 
rotateAngle
)

Sets the rotation angle of the image in degrees

Parameters
hParams

Handle of WNRParams object

rotateAngle
int

Rotation angle in degrees (0..359). Value 0 - do not rotate image.

Notes

Default value is 0.  The input image will be rotated counterclockwise direction at defined angle (in degrees) before processing.

WNRParams_GetXOption
bool DTKWNRAPI WNRParams_GetXOption(
hParams,
const 
char
optionName,
char** 
val,
int 
val_size
)

Gets eXtra non-documented options, which can enable some custom feature

Parameters
hParams

Handle of WNRParams object

optionName
const char*

Option name

val
char**

Pointer to string buffer to receive option value

val_size
int

Size of string buffer

WNRParams_SetXOption
void DTKWNRAPI WNRParams_SetXOption(
hParams,
const 
char
optionName,
const 
char
val
)

Sets eXtra non-documented options, which can enable some custom feature

Parameters
hParams

Handle of WNRParams object

optionName
const char*

Option name

val
const char*

String value of option

WNRParams_GetZonesCount
int DTKWNRAPI WNRParams_GetZonesCount(
hParams
)

Gets the number of recognition zones

Parameters
hParams

Handle of WNRParams object

Returns

Number of recognition zones

WNRParams_AddZone
int DTKWNRAPI WNRParams_AddZone(
hParams,
char
zone_name
)

Add new recognition zone

Parameters
hParams

Handle of WNRParams object

zone_name
char*

Name of recognition zone

Returns

Index of new recognition zone

WNRParams_RemoveZone
int DTKWNRAPI WNRParams_RemoveZone(
hParams,
int 
zoneIndex
)

Remove recognition zone by it's index

Parameters
hParams

Handle of WNRParams object

zoneIndex
int

Zone index

Returns

Value 0 if recognition zone has been deleted successfully, otherwise -1

Notes

Zone index is zero-based

WNRParams_RemoveAllZones
void DTKWNRAPI WNRParams_RemoveAllZones(
hParams
)

Remove all recognition zones

Parameters
hParams

Handle of WNRParams object

WNRParams_GetZonePointsCount
int DTKWNRAPI WNRParams_GetZonePointsCount(
hParams,
int 
zoneIndex
)

Gets the number of polygon points that make up the zone

Parameters
hParams

Handle of WNRParams object

zoneIndex
int

Zone index

Returns

Number of polygon points of recognition zone, -1 if no zone found by index

Notes

Zone index is zero-based

WNRParams_SetZonePoint
int DTKWNRAPI WNRParams_SetZonePoint(
hParams,
int 
zoneIndex,
int 
pointIndex,
float 
x,
float 
y
)

Sets relative coordinates of polygon point by it's index

Parameters
hParams

Handle of WNRParams object

zoneIndex
int

Zone index

pointIndex
int

Zone index

x
float

X - relative coordinate (floating value from 0 to 1)

y
float

Y - relative coordinate (floating value from 0 to 1)

Returns

Value 0 on success, otherwise -1

Notes

Example: image 640 x 480 pixels, relative coordinates (0.1, 0.2) means (64, 96) in pixels for our image resolution.

Using relative coordinates, you can easily change the resolution and image size without updating the coordinates of the zones.

Zone index and Point index are zero-based

WNRParams_AddZonePoint
int DTKWNRAPI WNRParams_AddZonePoint(
hParams,
int 
zoneIndex,
float 
x,
float 
y
)

Add new polygon point (with relative coordinates) for recognition zone

Parameters
hParams

Handle of WNRParams object

zoneIndex
int

Zone index

x
float

X - relative coordinate (floating value from 0 to 1)

y
float

Y - relative coordinate (floating value from 0 to 1)

Returns

Value 0 on success, otherwise -1

Notes

Example: image 640 x 480 pixels, relative coordinates (0.1, 0.2) means (64, 96) in pixels for our image resolution.

Using relative coordinates, you can easily change the resolution and image size without updating the coordinates of the zones.

Zone index is zero-based

WNRParams_RemoveZonePoint
int DTKWNRAPI WNRParams_RemoveZonePoint(
hParams,
int 
zoneIndex,
int 
pointIndex
)

Remove polygon point (with relative coordinates) of recognition zone by it's index

Parameters
hParams

Handle of WNRParams object

zoneIndex
int

Zone index

pointIndex
int

Point index

Returns

Value 0 on success, otherwise -1

Notes

Zone index and Point index are zero-based

WNRResult Functions
WNRResult_Destroy
void DTKWNRAPI WNRResult_Destroy(
hResult
)

Destroy WNRResult object

Parameters
hResult

Handle of WNRResult object

Notes

There is not possibility to create WNRResult object, the WNR engine only can create this object, you need to destroy it when you do not need it anymore.

WNRResult_GetWagonNumbersCount
int DTKWNRAPI WNRResult_GetWagonNumbersCount(
hResult
)

Gets the number of WagonNumber objects containing in WNRResult object

Parameters
hResult

Handle of WNRResult object

Returns

Number of WagonNumber objects

WNRResult_GetWagonNumber
WNRNUMBER DTKWNRAPI WNRResult_GetWagonNumber(
hResult,
int 
index
)

Gets the WagonNumber object from WNRResult by it's index

Parameters
hResult

Handle of WNRResult object

index
int

Index of WagonNumber object

Returns

Handle of WagonNumber object

Notes

Each WagonNumber object from WNRResult must be destroyed using WagonNumber_Destroy function

WNRResult_GetProcessingTime
int64 DTKWNRAPI WNRResult_GetProcessingTime(
hResult
)

Gets the processing time (in milliseconds) without image file reading from disk and image decoding.

Parameters
hResult

Handle of WNRResult object

Returns

time in milliseconds

WagonNumber Functions
WagonNumber_Destroy
void DTKWNRAPI WagonNumber_Destroy(
hWagonNum
)

Destroys the WagonNumber object instance

Parameters
hWagonNum

Handle of WagonNumber object

Notes

There is not possibility to create WagonNumber object, the WNR engine only can create this object, you need to destroy it when you do not need it anymore.

WagonNumber_GetText
int DTKWNRAPI WagonNumber_GetText(
hWagonNum,
char
text,
int 
textSize
)

Gets the wagon number text

Parameters
hWagonNum

Handle of WagonNumber object

text
char*

Pointer to string buffer which receives recognized wagon number text

textSize
int

Size of string buffer

Returns

Number of bytes copied to string buffer. If text = NULL or textSize = 0, then function return required number of bytes required to store the result string

WagonNumber_GetType
WAGON_NUMBER_TYPE DTKWNRAPI WagonNumber_GetType(
hWagonNum
)

Gets the type of wagon number

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Type of wagon number, WAGON_NUMBER_TYPE enumeration value

WagonNumber_GetChecksumIsValid
bool DTKWNRAPI WagonNumber_GetChecksumIsValid(
hWagonNumber
)

Gets the value indicating whether the checksum of wagon number is valid

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Boolean value

Notes

The wagon number may have an incorrect checksum if the IgnoreChecksum parameter is set to True.

WagonNumber_GetX
int DTKWNRAPI WagonNumber_GetX(
hWagonNum
)

Gets the X coordinate of wagon number bounding rectangle

Parameters
hWagonNum

Handle of WagonNumber object

Returns

X coordinate in pixels

WagonNumber_GetY
int DTKWNRAPI WagonNumber_GetY(
hWagonNum
)

Gets the Y coordinate of wagon number bounding rectangle

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Y coordinate in pixels

WagonNumber_GetWidth
int DTKWNRAPI WagonNumber_GetWidth(
hWagonNum
)

Gets the width of wagon number bounding rectangle

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Width in pixels

WagonNumber_GetHeight
int DTKWNRAPI WagonNumber_GetHeight(
hWagonNum
)

Gets width of wagon number bounding rectangle

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Width in pixels

WagonNumber_GetSymbolsCount
int DTKWNRAPI WagonNumber_GetSymbolsCount(
hWagonNum
)

Gets number of wagon number symbols

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Number of symbols

WagonNumber_GetSymbolX
int DTKWNRAPI WagonNumber_GetSymbolX(
hWagonNum,
int 
index
)

Gets the X coordinate of symbol in pixels

Parameters
hWagonNum

Handle of WagonNumber object

index
int

index of symbol (zero-based)

Returns

X coordinate in pixels

WagonNumber_GetSymbolY
int DTKWNRAPI WagonNumber_GetSymbolY(
hWagonNum,
int 
index
)

Gets the Y coordinate of symbol in pixels

Parameters
hWagonNum

Handle of WagonNumber object

index
int

index of symbol (zero-based)

Returns

Y coordinate in pixels

WagonNumber_GetSymbolWidth
int DTKWNRAPI WagonNumber_GetSymbolWidth(
hWagonNum,
int 
index
)

Gets the width of symbol in pixels

Parameters
hWagonNum

Handle of WagonNumber object

index
int

index of symbol (zero-based)

Returns

Width in pixels

WagonNumber_GetSymbolHeight
int DTKWNRAPI WagonNumber_GetSymbolHeight(
hWagonNum,
int 
index
)

Gets the height of symbol in pixels

Parameters
hWagonNum

Handle of WagonNumber object

index
int

index of symbol (zero-based)

Returns

Height in pixels

WagonNumber_GetSymbol
wchar_t DTKWNRAPI WagonNumber_GetSymbol(
hWagonNum,
int 
index
)

Gets the symbol character

Parameters
hWagonNum

Handle of WagonNumber object

index
int

index of symbol (zero-based)

Returns

Character of symbol

WagonNumber_GetSymbolConfidence
int DTKWNRAPI WagonNumber_GetSymbolConfidence(
hWagonNum,
int 
index
)

Gets the recognition confidence of wagon number symbol

Parameters
hWagonNum

Handle of WagonNumber object

index
int

index of symbol (zero-based)

Returns

Number of percentage from 1 to 100

WagonNumber_GetConfidence
int DTKWNRAPI WagonNumber_GetConfidence(
hWagonNum
)

Gets the recognition confidence of wagon number

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Number of percentage from 1 to 100

WagonNumber_GetZone
int DTKWNRAPI WagonNumber_GetZone(
hWagonNum
)

Gets the recognition zone index to which the wagon number belongs

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Index of recognition zone

Notes

The index is one-based. If the index is 0, it means that the zones are not defined and the number is found on the whole image.

WAgonNumber_GetZoneName
int DTKWNRAPI WagonNumber_GetZoneName(
hWagonNum,
char
buffer,
int 
bufferSize
)

Gets the recognition zone name to which the wagon number belongs

Parameters
hWagonNum

Handle of WagonNumber object

buffer
char*

Pointer to string buffer which will receive zone name

bufferSize
int

Size of the string buffer in bytes

Returns

Number of bytes copied to buffer. If buffer = NULL or bufferSize = 0, then function return required number of bytes required to store the result string

WagonNumber_GetTimestamp
int64 DTKWNRAPI WagonNumber_GetTimestamp(
hWagonNum
)

Gets the timestamp of the video frame where the wagon number recognized

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Timestamp in milliseconds

Notes

This property used for video mode only

WagonNumber_GetFrameTimestamp
int64 DTKWNRAPI WagonNumber_GetFrameTimestamp(
hWagonNum
)

Gets the timestamp of the video frame that was passed to PutFrameImageBuffer function

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Timestamp in milliseconds

Notes

This property used for video mode only

WagonNumber_GetDateTimeString
int DTKWNRAPI WagonNumber_GetDateTimeString(
hWagonNum,
char
buffer,
int 
bufferSize
)

Gets the date/time string with milliseconds of the video frame where the wagon number recognized

Parameters
hWagonNum

Handle of WagonNumber object

buffer
char*

Pointer to string buffer which will receive date/time string

bufferSize
int

Size of the string buffer in bytes

Returns

Number of bytes copied to buffer. If buffer = NULL or bufferSize = 0, then function return required number of bytes required to store the result string

Notes

Returns data/time string of the video frame in format "yyyy-dd-mm hh:mm:ss.fff"

This property used for video mode only

WagonNumber_GetId
int64 DTKWNRAPI WagonNumber_GetId(
hWagonNum
)

Gets the wagon number unique id

Parameters
hWagonNum

Handle of WagonNumber object

Returns

Unique id of the wagon number

Notes

Can be used to identify previously recognized wagon number and update the result.

This property used for video mode only

WagonNumber_GetCustomData
int64 DTKWNRAPI WagonNumber_GetCustomData(
hWagonNum
)

Gets custom 64 bit data which has been sent as parameter of WNREngine_PutFrameImageBuffer function

Parameters
hWagonNum

Handle of WagonNumber object

Returns

64 bit integer value

Notes

This property used for video mode only