Look for multiple bar code regions in an image.
find_1d_bar_code_region looks for multiple barcodes in the image. In contrast to find_1d_bar_code this operator is used if an image contains more than one bar code. Here only the regions but not the widths of the elements are extracted. For every region the orientation in radians is calculated.
The control of the image processing is identical to find_1d_bar_code. The description of the parameters GenericName and GenericValue can be found at this operator.
|
Image (input_object) |
image -> object : byte / uint2 |
| Image with bar codes inside. | |
|
CodeRegion (output_object) |
region(-array) -> object |
| Regions of bar codes. | |
|
BarCodeDescr (input_control) |
barcode_1d-array -> string / integer / real |
| Description of a bar code class. | |
|
GenericName (input_control) |
string(-array) -> string |
| Names of optional parameters. | |
| Default value: '[]' | |
| List of values: 'amplitude_sobel', 'min_size_element', 'max_size_element', 'angle_range', 'correct_angle', 'dilation_factor', 'sum_angles' | |
|
GenericValue (input_control) |
number(-array) -> real / integer / string |
| Values of optional parameters. | |
| Default value: '[]' | |
|
Orientation (output_control) |
real(-array) -> real |
| Orientation of bar code. | |
HTuple empty; // empty list of values
HTuple BarCodeDescr;
HTuple Orientations, Elements;
HTuple Characters,Reference,IsCorrect;
Hobject Image,CodeRegions,CodeRegion,GrayRegion;
long num;
gen_1d_bar_code_descr("code 39",4,15,&BarCodeDescr);
find_1d_bar_code_region(Image,&CodeRegion,BarCodeDescr,empty,empty,
&Orientations);
count_obj(CodeRegions,&num);
for (long i=0; i<num; i++)
{
select_obj(CodeRegions,&CodeRegion,i);
reduce_domain(Image,CodeRegion,GrayRegion)\:
get_1d_bar_code(GrayRegion,BarCodeDescr,empty,empty,Orientations[i],
&Elements);
decode_1d_bar_code(Elements,BarCodeDescr,
&Characters,&Reference,&IsCorrect);
}
The operator find_1d_bar_code_region returns the value 2 (H_MSG_TRUE) if the parameters are correct and at least one bar code is found.
find_1d_bar_code_region is reentrant and processed without parallelization.
gen_1d_bar_code_descr, gen_1d_bar_code_descr_gen
get_1d_bar_code, count_obj, select_obj, reduce_domain
Barcode reader