Number of entries in the HALCON database.
The operator count_relation counts the number of entries in one of the four relations of the HALCON database. The HALCON database is organized as follows:
There are two basic relations for region-data and image-matrices. The HALCON objects region and image are constructed from elements from these two relations: a region consists of a pointer to a tuple in the region-data relation. An image consists also of a pointer to a tuple in the region-data relation (like a region) and additionally of one or more pointers to tuples in the matrix relation. If there is more than one matrix pointer, the image is called a multi-channel image.
Both regions and images are called objects. A region can be considered as the special case of an iconic object having no image matrixes. For reasons of an efficient memory managment, the tuples of the region-data relation and the image-matrix relation will be used by different objects together. Therefore there may be for example more images than image matrices. Only the two lowlevel relations are of relevance to the memory consumption. Image objects (regions as well as images) consist only of references on region and matrix data and therefore only need a couple of bytes of memory.
Possible values for RelationName:
'image'
Image matrices. One matrix may also be the component of more
than one image (no redundant storage).
'region'
Regions (the full and the empty region are always available).
One region may of course also be the component of more than
one image object (no redundant storage).
'XLD'
eXtended Line Description: Contours, Polygons, paralles,
lines, etc. XLD data types don't have gray values and are stored
with subpixel accuracy.
'object'
Iconic objects. Composed of a region (called region) and
optionally image matrices (called image).
'tuple'
In the compact mode, tuples of iconic objects are stored as a
surrogate in this relation.
Instead of working with the individual object keys, only this
tuple key is used. It depends on the host language, whether the
objects are passed individually (Prolog and C++) or as tuples
(C, Smalltalk, Lisp, OPS-5).
Certain database objects will be created already by the operator reset_obj_db and therefore have to be available all the time (the undefined gray value component, the objects 'full' (FULL_REGION in HALCON/C) and 'empty' (EMPTY_REGION in HALCON/C) as well as the herein included empty and full region). By calling get_channel_info, the operator therefore appears correspondingly also as 'creator' of the full and empty region. The procedure can be used for example to check the completeness of the clear_obj operation.
|
RelationName (input_control) |
string -> string |
| Relation of interest of the HALCON database. | |
| Default value: 'object' | |
| List of values: 'image', 'region', 'XLD', 'object', 'tuple' | |
|
NumOfTuples (output_control) |
integer -> integer |
| Number of tuples in the relation. | |
reset_obj_db(512,512,3)
count_relation('image',I1)
count_relation('region',R1)
count_relation('XLD',X1)
count_relation('object',O1)
count_relation('tuple',T1)
read_image(X,'monkey')
count_relation('image',I2)
count_relation('region',R2)
count_relation('XLD',X2)
count_relation('object',O2)
count_relation('tuple',T2)
/*
Result: I1 = 1 (undefined image)
R1 = 2 (full and empty region)
X1 = 0 (no XLD data)
O1 = 2 (full and empty objects)
T1 = 0 (always 0 in the normal mode )
I2 = 2 (additionally the image 'monkey')
R2 = 2 (read_image uses the full region)
X2 = 0 (no XLD data)
O2 = 3 (additionally the image object X)
T2 = 0.
*/If the parameter is correct, the operator count_relation returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.
count_relation is reentrant and processed without parallelization.
System