Name
find_1d_bar_code_scanlineT_find_1d_bar_code_scanlineFind1dBarCodeScanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlineFind1dBarCodeScanline — Einen Barcode in einem Bild finden.
Warnung
find_1d_bar_code_scanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlineFind1dBarCodeScanline ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt. Neue
Applikationen zum Lesen von Barcode-Symbologien sollten stattdessen die
Funktionalitäten im Kapitel Identifizierung / Barcode verwenden
(siehe find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode).
Herror T_find_1d_bar_code_scanline(const Hobject Image, Hobject* CodeRegion, const Htuple BarCodeDescr, const Htuple GenericName, const Htuple GenericValue, const Htuple StopIfFound, Htuple* BarcodeFound, Htuple* BarCodeElements, Htuple* Orientation, Htuple* ScanlineNumPoints, Htuple* ScanlineDecoded, Htuple* ScanlinePointsRow, Htuple* ScanlinePointsColumn)
Herror find_1d_bar_code_scanline(Hobject Image, Hobject* CodeRegion, const HTuple& BarCodeDescr, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& StopIfFound, HTuple* BarcodeFound, HTuple* BarCodeElements, HTuple* Orientation, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn)
HRegion HImage::Find1dBarCodeScanline(const HTuple& BarCodeDescr, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& StopIfFound, HTuple* BarcodeFound, HTuple* BarCodeElements, HTuple* Orientation, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn) const
HRegion HBarCode1D::Find1dBarCodeScanline(const HImage& Image, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& StopIfFound, HTuple* BarcodeFound, HTuple* BarCodeElements, HTuple* Orientation, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn) const
void Find1dBarCodeScanline(const HObject& Image, HObject* CodeRegion, const HTuple& BarCodeDescr, const HTuple& GenericName, const HTuple& GenericValue, const HTuple& StopIfFound, HTuple* BarcodeFound, HTuple* BarCodeElements, HTuple* Orientation, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn)
HRegion HImage::Find1dBarCodeScanline(const HTuple& BarCodeDescr, const HTuple& GenericName, const HTuple& GenericValue, const HString& StopIfFound, Hlong* BarcodeFound, HTuple* BarCodeElements, double* Orientation, HTuple* ScanlineNumPoints, HTuple* ScanlineDecoded, HTuple* ScanlinePointsRow, HTuple* ScanlinePointsColumn) const
HRegion HImage::Find1dBarCodeScanline(const HTuple& BarCodeDescr, const HString& GenericName, double GenericValue, const HString& StopIfFound, Hlong* BarcodeFound, HTuple* BarCodeElements, double* Orientation, Hlong* ScanlineNumPoints, Hlong* ScanlineDecoded, double* ScanlinePointsRow, double* ScanlinePointsColumn) const
HRegion HImage::Find1dBarCodeScanline(const HTuple& BarCodeDescr, const char* GenericName, double GenericValue, const char* StopIfFound, Hlong* BarcodeFound, HTuple* BarCodeElements, double* Orientation, Hlong* ScanlineNumPoints, Hlong* ScanlineDecoded, double* ScanlinePointsRow, double* ScanlinePointsColumn) const
void HOperatorSetX.Find1dBarCodeScanline(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX** CodeRegion, [in] VARIANT BarCodeDescr, [in] VARIANT GenericName, [in] VARIANT GenericValue, [in] VARIANT StopIfFound, [out] VARIANT* BarcodeFound, [out] VARIANT* BarCodeElements, [out] VARIANT* Orientation, [out] VARIANT* ScanlineNumPoints, [out] VARIANT* ScanlineDecoded, [out] VARIANT* ScanlinePointsRow, [out] VARIANT* ScanlinePointsColumn)
IHRegionX* HBarCode1DX.Find1dBarCodeScanline(
[in] IHImageX* Image, [in] VARIANT BarCodeDescr, [in] VARIANT GenericName, [in] VARIANT GenericValue, [in] BSTR StopIfFound, [out] Hlong* BarcodeFound, [out] VARIANT* BarCodeElements, [out] double* Orientation, [out] VARIANT* ScanlineNumPoints, [out] VARIANT* ScanlineDecoded, [out] VARIANT* ScanlinePointsRow, [out] VARIANT* ScanlinePointsColumn)
IHRegionX* HImageX.Find1dBarCodeScanline(
[in] VARIANT BarCodeDescr, [in] VARIANT GenericName, [in] VARIANT GenericValue, [in] BSTR StopIfFound, [out] Hlong* BarcodeFound, [out] VARIANT* BarCodeElements, [out] double* Orientation, [out] VARIANT* ScanlineNumPoints, [out] VARIANT* ScanlineDecoded, [out] VARIANT* ScanlinePointsRow, [out] VARIANT* ScanlinePointsColumn)
static void HOperatorSet.Find1dBarCodeScanline(HObject image, out HObject codeRegion, HTuple barCodeDescr, HTuple genericName, HTuple genericValue, HTuple stopIfFound, out HTuple barcodeFound, out HTuple barCodeElements, out HTuple orientation, out HTuple scanlineNumPoints, out HTuple scanlineDecoded, out HTuple scanlinePointsRow, out HTuple scanlinePointsColumn)
HRegion HImage.Find1dBarCodeScanline(HTuple barCodeDescr, HTuple genericName, HTuple genericValue, string stopIfFound, out int barcodeFound, out HTuple barCodeElements, out double orientation, out HTuple scanlineNumPoints, out HTuple scanlineDecoded, out HTuple scanlinePointsRow, out HTuple scanlinePointsColumn)
HRegion HImage.Find1dBarCodeScanline(HTuple barCodeDescr, string genericName, double genericValue, string stopIfFound, out int barcodeFound, out HTuple barCodeElements, out double orientation, out int scanlineNumPoints, out int scanlineDecoded, out double scanlinePointsRow, out double scanlinePointsColumn)
Wie find_1d_bar_codefind_1d_bar_codeFind1dBarCodefind_1d_bar_codeFind1dBarCodeFind1dBarCode, sucht auch
find_1d_bar_code_scanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlineFind1dBarCodeScanline einen Barcode in einem Bild,
allerdings liefert find_1d_bar_code_scanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlineFind1dBarCodeScanline auch noch
Informationen über die verwendeten Scanlines.
Jede Scanlines wird durch eine Menge von Punkten representiert. Die
Zeilen- und Spaltenkoordinaten dieser Punkte werden in
ScanlinePointsRowScanlinePointsRowScanlinePointsRowScanlinePointsRowScanlinePointsRowscanlinePointsRow, bzw. in ScanlinePointsColumnScanlinePointsColumnScanlinePointsColumnScanlinePointsColumnScanlinePointsColumnscanlinePointsColumn
zurückgeliefert. Diese Parameter sind Tuple; sie beinhalten die
Punkte aller Scanlines. Um auf die Punkte einer bestimmten
Scanline zugreifen zu können, wird die Anzahl der Punkte für jede
Scanline im Tuple ScanlineNumPointsScanlineNumPointsScanlineNumPointsScanlineNumPointsScanlineNumPointsscanlineNumPoints zurückgeliefert. Das
Tuple ScanlineDecodedScanlineDecodedScanlineDecodedScanlineDecodedScanlineDecodedscanlineDecoded informiert darüber, ob der Barcode
mit ihr dekodiert werden konnte. Eine 0 wird zurück gegeben, wenn
der Barcode mit dieser Scanline nicht dekodiert werden konnte,
ansonsten eine 1 oder eine 2, abhänging davon welche Methode zur
Dedektion der Kanten verwendet wurde. Im Allgemeinen wird eine 1
zurückgegeben, für dünne Linien eine 2. Falls StopIfFoundStopIfFoundStopIfFoundStopIfFoundStopIfFoundstopIfFound =
'true'"true""true""true""true""true", wird der Operator verlassen sobald der Barcode
dekodiert werden konnte, ansonsten werden alle Scanlines überprüft.
Eine Beschreibung der anderen Parameter findet man bei
find_1d_bar_codefind_1d_bar_codeFind1dBarCodefind_1d_bar_codeFind1dBarCodeFind1dBarCode.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Bild, das Barcode enthält.
Beschreibung eines Barcode-Typs
Namen der optionalen Steuerparameter.
Defaultwert: []
Werteliste: 'add_length_project'"add_length_project""add_length_project""add_length_project""add_length_project""add_length_project", 'amplitude_project'"amplitude_project""amplitude_project""amplitude_project""amplitude_project""amplitude_project", 'amplitude_sobel'"amplitude_sobel""amplitude_sobel""amplitude_sobel""amplitude_sobel""amplitude_sobel", 'angle_range'"angle_range""angle_range""angle_range""angle_range""angle_range", 'correct_angle'"correct_angle""correct_angle""correct_angle""correct_angle""correct_angle", 'dilation_factor'"dilation_factor""dilation_factor""dilation_factor""dilation_factor""dilation_factor", 'interpolation_project'"interpolation_project""interpolation_project""interpolation_project""interpolation_project""interpolation_project", 'max_extra_elements'"max_extra_elements""max_extra_elements""max_extra_elements""max_extra_elements""max_extra_elements", 'max_size_element'"max_size_element""max_size_element""max_size_element""max_size_element""max_size_element", 'min_size_element'"min_size_element""min_size_element""min_size_element""min_size_element""min_size_element", 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines", 'sigma_project'"sigma_project""sigma_project""sigma_project""sigma_project""sigma_project", 'sum_angles'"sum_angles""sum_angles""sum_angles""sum_angles""sum_angles", 'width_project'"width_project""width_project""width_project""width_project""width_project"
Wert der optionalen Steuerparameter.
Defaultwert: []
Verlasse Operator sobald der Barcode decodiert wurde?.
Defaultwert:
'false'
"false"
"false"
"false"
"false"
"false"
Werteliste: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"
Information ob der Barcode gefunden wurde.
Werteliste: 0, 1
Orientierung des Barcodes.
Anzahl der zur Scanline gehörenden Punkte.
Information ob der Barcode mit der Scanline dekodiert
werden konnte.
Werteliste: 0, 1, 2
Zeilenkoordinaten der Punkte der Scanline.
Spaltenkoordinaten der Punkte der Scanline.
HTuple empty; // empty list of values
HTuple BarCodeDescr;
HTuple BarcodeFound,Elements,Orientation;
HTuple Characters,Reference,IsCorrect;
Hobject Image,CodeRegion;
HTuple ScanlineNumPoints, ScanlineDecoded, ScanlinePointsRow,
ScanlinePointsColumn;
HTuple NumScanlines, NumPoints;
HTuple j, k, indexPoint, nStart, nEnd;
HTuple WindowHandle;
gen_1d_bar_code_descr("EAN 13",13,13,&BarCodeDescr);
find_1d_bar_code_scanline(Image,&CodeRegion,BarCodeDescr,empty,empty,
"false",&BarcodeFound,&Elements,&Orientation,
&ScanlineNumPoints,&ScanlineDecoded,
&ScanlinePointsRow,&ScanlinePointsColumn);
set_window_attr("background_color",HTuple("black"));
open_window(HTuple(0),HTuple(0),HTuple(512),HTuple(512),0,"","",
&WindowHandle);
if (BarcodeFound[0].l)
{
decode_1d_bar_code(Elements,BarCodeDescr,
&Characters,&Reference,&IsCorrect);
if (IsCorrect[0].l)
for (int i=0; i<Characters.Num(); i++)
{
char *value = Characters[i];
}
// display scanlines
NumScanlines = ScanlineNum.Num();
indexPoint = HTuple(0);
for (j=0; j<=NumScanlines-1; j+=1)
{
if (HTuple(ScanlineDecoded[(Hlong)(j)[0]])==1)
{
set_color(WindowHandle,HTuple("green"));
}
else
{
set_color(WindowHandle,HTuple("red"));
}
NumPoints = HTuple(ScanlineNumPoints[(Hlong)(j)[0]]);
nStart = indexPoint;
nEnd = (indexPoint+NumPoints)-1;
for (k=nStart; k<=nEnd; k+=1)
{
disp_circle(WindowHandle,HTuple(ScanlinePointsRow[(Hlong)(k)[0]]),
HTuple(ScanlinePointsColumn[(Hlong)(k)[0]]),HTuple(1));
}
indexPoint = nEnd+1;
}
}
find_1d_bar_code_scanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlinefind_1d_bar_code_scanlineFind1dBarCodeScanlineFind1dBarCodeScanline liefert den Wert 2 (H_MSG_TRUE), sofern die
die Parameter korrekt sind.
Bar Code