HALCON Reference Manual 10.0.2
Table of Contents / Legacy / 1D Bar Code ClassesClassesClasses | | | Operators

get_1d_bar_code_scanlineT_get_1d_bar_code_scanlineget_1d_bar_code_scanlineGet1dBarCodeScanlineGet1dBarCodeScanline (Operator)

Name

get_1d_bar_code_scanlineT_get_1d_bar_code_scanlineget_1d_bar_code_scanlineGet1dBarCodeScanlineGet1dBarCodeScanline — Extract the widths of the elements inside a bar code region.

Warning

get_1d_bar_code_scanlineget_1d_bar_code_scanlineget_1d_bar_code_scanlineGet1dBarCodeScanlineGet1dBarCodeScanline is obsolete and is only provided for reasons of backward compatibility. New applications for reading bar codes should use the functionalities in the chapter Identification / Bar Code instead.

Signature

get_1d_bar_code_scanline(BarCodeRegion : : BarCodeDescr, GenericName, GenericValue, Orientation, StopIfFound : BarCodeElements, ScanlineNumPoints, ScanlineDecoded, ScanlinePointsRow, ScanlinePointsColumn)

Herror T_get_1d_bar_code_scanline(const Hobject BarCodeRegion, const Htuple BarCodeDescr, const Htuple GenericName, const Htuple GenericValue, const Htuple Orientation, const Htuple StopIfFound, Htuple* BarCodeElements, Htuple* ScanlineNumPoints, Htuple* ScanlineDecoded, Htuple* ScanlinePointsRow, Htuple* ScanlinePointsColumn)

Herror get_1d_bar_code_scanline(Hobject BarCodeRegion, const HTuple& BarCodeDescr, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& Orientation, const HTuple& StopIfFound, HTuple* BarCodeElements, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn)

HTuple HImage::Get1dBarCodeScanline(const HTuple& BarCodeDescr, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& Orientation, const HTuple& StopIfFound, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn) const

HTuple HBarCode1D::Get1dBarCodeScanline(const HImage& BarCodeRegion, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& Orientation, const HTuple& StopIfFound, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn) const

void HOperatorSetX.Get1dBarCodeScanline(
[in] IHUntypedObjectX* BarCodeRegion, [in] VARIANT BarCodeDescr, [in] VARIANT GenericName, [in] VARIANT GenericValue, [in] VARIANT Orientation, [in] VARIANT StopIfFound, [out] VARIANT* BarCodeElements, [out] VARIANT* ScanlineNumPoints, [out] VARIANT* ScanlineDecoded, [out] VARIANT* ScanlinePointsRow, [out] VARIANT* ScanlinePointsColumn)

VARIANT HBarCode1DX.Get1dBarCodeScanline(
[in] IHImageX* BarCodeRegion, [in] VARIANT BarCodeDescr, [in] VARIANT GenericName, [in] VARIANT GenericValue, [in] double Orientation, [in] BSTR StopIfFound, [out] VARIANT* ScanlineNumPoints, [out] VARIANT* ScanlineDecoded, [out] VARIANT* ScanlinePointsRow, [out] VARIANT* ScanlinePointsColumn)

VARIANT HImageX.Get1dBarCodeScanline(
[in] VARIANT BarCodeDescr, [in] VARIANT GenericName, [in] VARIANT GenericValue, [in] double Orientation, [in] BSTR StopIfFound, [out] VARIANT* ScanlineNumPoints, [out] VARIANT* ScanlineDecoded, [out] VARIANT* ScanlinePointsRow, [out] VARIANT* ScanlinePointsColumn)

static void HOperatorSet.Get1dBarCodeScanline(HObject barCodeRegion, HTuple barCodeDescr, HTuple genericName, HTuple genericValue, HTuple orientation, HTuple stopIfFound, out HTuple barCodeElements, out HTuple scanlineNumPoints, out HTuple scanlineDecoded, out HTuple scanlinePointsRow, out HTuple scanlinePointsColumn)

HTuple HImage.Get1dBarCodeScanline(HTuple barCodeDescr, HTuple genericName, HTuple genericValue, double orientation, string stopIfFound, out HTuple scanlineNumPoints, out HTuple scanlineDecoded, out HTuple scanlinePointsRow, out HTuple scanlinePointsColumn)

HTuple HImage.Get1dBarCodeScanline(HTuple barCodeDescr, string genericName, double genericValue, double orientation, string stopIfFound, out int scanlineNumPoints, out int scanlineDecoded, out double scanlinePointsRow, out double scanlinePointsColumn)

Description

Like get_1d_bar_codeget_1d_bar_codeget_1d_bar_codeGet1dBarCodeGet1dBarCode, get_1d_bar_code_scanlineget_1d_bar_code_scanlineget_1d_bar_code_scanlineGet1dBarCodeScanlineGet1dBarCodeScanline extracts the widths of the elements of a bar code inside the specified region, but get_1d_bar_code_scanlineget_1d_bar_code_scanlineget_1d_bar_code_scanlineGet1dBarCodeScanlineGet1dBarCodeScanline also returns information about the used scanlines.

For a description of the parameters see get_1d_bar_codeget_1d_bar_codeget_1d_bar_codeGet1dBarCodeGet1dBarCode and find_1d_bar_code_scanlinefind_1d_bar_code_scanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlineFind1dBarCodeScanline.

Parallelization

Parameters

BarCodeRegionBarCodeRegionBarCodeRegionBarCodeRegionbarCodeRegion (input_object)  image objectHImageHImageHImageXHobject (byte / uint2)

Region of bar code.

BarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrbarCodeDescr (input_control)  barcode_1d-array HTupleHBarCode1D, HTupleHBarCode1DX, VARIANTHtuple (string / integer / real) (string / int / long / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Description of a bar code class.

GenericNameGenericNameGenericNameGenericNamegenericName (input_control)  attribute.name(-array) HTupleHTupleVARIANTHtuple (string) (string) (char*) (BSTR) (char*)

Names of optional parameters.

Default value: []

List of values: 'sigma_project'"sigma_project""sigma_project""sigma_project""sigma_project", 'amplitude_project'"amplitude_project""amplitude_project""amplitude_project""amplitude_project", 'width_project'"width_project""width_project""width_project""width_project", 'add_length_project'"add_length_project""add_length_project""add_length_project""add_length_project", 'interpolation_project'"interpolation_project""interpolation_project""interpolation_project""interpolation_project", 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines", 'max_extra_elements'"max_extra_elements""max_extra_elements""max_extra_elements""max_extra_elements"

GenericValueGenericValueGenericValueGenericValuegenericValue (input_control)  attribute.value(-array) HTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong)

Values of optional parameters.

Default value: []

OrientationOrientationOrientationOrientationorientation (input_control)  angle.rad HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Orientation of bar code.

StopIfFoundStopIfFoundStopIfFoundStopIfFoundstopIfFound (input_control)  string HTupleHTupleVARIANTHtuple (string) (string) (char*) (BSTR) (char*)

Leave operator as soon as the bar code has been decoded?.

Default value: 'false' "false" "false" "false" "false"

List of values: 'true'"true""true""true""true", 'false'"false""false""false""false"

BarCodeElementsBarCodeElementsBarCodeElementsBarCodeElementsbarCodeElements (output_control)  number-array HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Widths of elements.

ScanlineNumPointsScanlineNumPointsScanlineNumPointsScanlineNumPointsscanlineNumPoints (output_control)  number(-array) HTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong)

Number of points belonging to that scanline.

ScanlineDecodedScanlineDecodedScanlineDecodedScanlineDecodedscanlineDecoded (output_control)  integer(-array) HTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong)

Information whether the bar code could be decoded with that scanline.

List of values: 0, 1, 2

ScanlinePointsRowScanlinePointsRowScanlinePointsRowScanlinePointsRowscanlinePointsRow (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Row - coordinates of the points of the scanline.

ScanlinePointsColumnScanlinePointsColumnScanlinePointsColumnScanlinePointsColumnscanlinePointsColumn (output_control)  real(-array) HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Column - coordinates of the points of the scanline.

Example (C++)

HTuple   empty;   // empty list of values
HTuple   BarCodeDescr;
HTuple   Orientations, Elements;
HTuple   Characters,Reference,IsCorrect;
Hobject  Image,CodeRegions,CodeRegion,GrayRegion;
long     num;
HTuple   ScanlineNumPoints, ScanlineDecoded, ScanlinePointsRow,
         ScanlinePointsColumn;
HTuple   NumScanlines, NumPoints;
HTuple   j, k, indexPoint, nStart, nEnd;
HTuple   WindowHandle;

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_scanlines(GrayRegion,BarCodeDescr,empty,empty,
                            Orientations[i],"false",&Elements,
                            &ScanlineNumPoints,&ScanlineDecoded,
                            &ScanlinePointsRow,&ScanlinePointsColumn);
  decode_1d_bar_code(Elements,BarCodeDescr,
                     &Characters,&Reference,&IsCorrect);
  // display scanlines
  NumScanlines = ScanlineNum.Num();
  indexPoint = HTuple(0);
  for (j=0; j<=NumScanlines-1; j+=1)
  {
    if (HTuple(ScanlineDecoded[(long)(j)[0]])==1)
    {
      set_color(WindowHandle,HTuple("green"));
    }
    else
    {
      set_color(WindowHandle,HTuple("red"));
    }
    NumPoints = HTuple(ScanlineNumPoints[(long)(j)[0]]);
    nStart = indexPoint;
    nEnd = (indexPoint+NumPoints)-1;
    for (k=nStart; k<=nEnd; k+=1)
    {
      disp_circle(WindowHandle,HTuple(ScanlinePointsRow[(long)(k)[0]]),
      HTuple(ScanlinePointsColumn[(long)(k)[0]]),HTuple(1));
    }
    indexPoint = nEnd+1;
  }
}

Result

The operator get_1d_bar_codeget_1d_bar_codeget_1d_bar_codeGet1dBarCodeGet1dBarCode returns the value 2 (H_MSG_TRUE) if the parameters are correct.

Possible Predecessors

find_1d_bar_code_regionfind_1d_bar_code_regionfind_1d_bar_code_regionFind1dBarCodeRegionFind1dBarCodeRegion, select_objselect_objselect_objSelectObjSelectObj, reduce_domainreduce_domainreduce_domainReduceDomainReduceDomain

Possible Successors

decode_1d_bar_codedecode_1d_bar_codedecode_1d_bar_codeDecode1dBarCodeDecode1dBarCode

Alternatives

find_1d_bar_codefind_1d_bar_codefind_1d_bar_codeFind1dBarCodeFind1dBarCode

Module

Bar Code


Table of Contents / Legacy / 1D Bar Code ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH