create_ocr_class_boxT_create_ocr_class_boxCreateOcrClassBoxCreateOcrClassBox (Operator)
Name
create_ocr_class_boxT_create_ocr_class_boxCreateOcrClassBoxCreateOcrClassBox
— Erzeugen eines neues OCR-Klassifikators.
Warnung
create_ocr_class_boxcreate_ocr_class_boxCreateOcrClassBoxCreateOcrClassBoxCreateOcrClassBox
ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt. Neue
Applikationen sollten stattdessen die auf MLP, SVM oder
CNN-basierten Operatoren verwenden.
Signatur
void CreateOcrClassBox(const HTuple& WidthPattern, const HTuple& HeightPattern, const HTuple& Interpolation, const HTuple& Features, const HTuple& Character, HTuple* OcrHandle)
void HOCRBox::HOCRBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const HTuple& Features, const HTuple& Character)
void HOCRBox::HOCRBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const HString& Features, const HTuple& Character)
void HOCRBox::HOCRBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const char* Features, const HTuple& Character)
void HOCRBox::HOCRBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const wchar_t* Features, const HTuple& Character)
(Nur Windows)
void HOCRBox::CreateOcrClassBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const HTuple& Features, const HTuple& Character)
void HOCRBox::CreateOcrClassBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const HString& Features, const HTuple& Character)
void HOCRBox::CreateOcrClassBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const char* Features, const HTuple& Character)
void HOCRBox::CreateOcrClassBox(Hlong WidthPattern, Hlong HeightPattern, Hlong Interpolation, const wchar_t* Features, const HTuple& Character)
(Nur Windows)
static void HOperatorSet.CreateOcrClassBox(HTuple widthPattern, HTuple heightPattern, HTuple interpolation, HTuple features, HTuple character, out HTuple ocrHandle)
public HOCRBox(int widthPattern, int heightPattern, int interpolation, HTuple features, HTuple character)
public HOCRBox(int widthPattern, int heightPattern, int interpolation, string features, HTuple character)
void HOCRBox.CreateOcrClassBox(int widthPattern, int heightPattern, int interpolation, HTuple features, HTuple character)
void HOCRBox.CreateOcrClassBox(int widthPattern, int heightPattern, int interpolation, string features, HTuple character)
Beschreibung
create_ocr_class_boxcreate_ocr_class_boxCreateOcrClassBoxCreateOcrClassBoxCreateOcrClassBox
erzeugt einen neuen OCR-Klassifikator.
Zur Beschreibung des Klassifikators siehe Operator
learn_class_boxlearn_class_boxLearnClassBoxLearnClassBoxLearnClassBox
.
Dieser Klassifikator muss dann mit traind_ocr_class_boxtraind_ocr_class_boxTraindOcrClassBoxTraindOcrClassBoxTraindOcrClassBox
oder trainf_ocr_class_boxtrainf_ocr_class_boxTrainfOcrClassBoxTrainfOcrClassBoxTrainfOcrClassBox
trainiert werden.
Die Parameter WidthPatternWidthPatternWidthPatternWidthPatternwidthPattern
und HeightPatternHeightPatternHeightPatternHeightPatternheightPattern
geben
die Größe der Eingabeschicht des Klassifikators an. Diese Größe wird
bei den Merkmalen 'projection_horizontal'"projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal",
'projection_vertical'"projection_vertical""projection_vertical""projection_vertical""projection_vertical", 'pixel'"pixel""pixel""pixel""pixel",
'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar" und 'pixel_binary'"pixel_binary""pixel_binary""pixel_binary""pixel_binary" verwendet, um das
zu erkennende Zeichen auf eine Standardgröße zu transformieren. Um
so größer die Standardgröße ist, um so mehr Zeichen können (mit
Grauwertmerkmalen) unterschieden werden. Dabei steigt aber auch die
Zeit für das Training (und die Anzahl der Lernstichproben) und die
Zeit für die Erkennung an. Der Parameter InterpolationInterpolationInterpolationInterpolationinterpolation
gibt den Interpolationsmodus für die Anpassung der Zeichen im Bild
auf die Größe im Klassifikator an. Dieser Parameter ist bei dem
Operator affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
beschrieben. Der Wert
0 erzeugt dieselbe Interpolation wie
'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor" in affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
, d.h. es
erfolgt keine Interpolation. Für 1 erhält man dasselbe
Verhalten wie 'constant'"constant""constant""constant""constant" in affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
,
d.h. es erfolgt eine ungewichtete Interpolation zwischen den
Grauwerten. Der Wert 2 erzeugt dieselbe Interpolation wie
'weighted'"weighted""weighted""weighted""weighted", d.h. es erfolgt eine gewichtete Interpolation
zwischen den Grauwerten. Der Parameter InterpolationInterpolationInterpolationInterpolationinterpolation
muss
so gewählt werden, dass bei der Skalierung der Zeichen auf die
Standardgröße keine Aliasing-Effekte auftreten. In der Praxis
bedeutet dies, dass InterpolationInterpolationInterpolationInterpolationinterpolation
= 1 gewählt
werden sollte, außer die Zeichen werden stark verkleinert. In
diesem Fall sollte InterpolationInterpolationInterpolationInterpolationinterpolation
= 2 gewählt
werden. InterpolationInterpolationInterpolationInterpolationinterpolation
= 0 sollte nur gewählt
werden, falls die Zeichen nicht skaliert werden.
Der Parameter CharacterCharacterCharacterCharactercharacter
legt alle zu erkennenden
Zeichen fest. Im Normalfall bestehen die übergebenen Strings aus einem
Zeichen (z.B. Alphabet). Es können aber auch Strings mit beliebiger
Länge gelernt werden. Die Anzahl unterscheidbarer Zeichen (Anzahl
Strings in CharacterCharacterCharacterCharactercharacter
) ist auf 2048 beschränkt.
Mit dem Parameter FeaturesFeaturesFeaturesFeaturesfeatures
können neben den Grauwerten
zusätzliche Merkmale zur Erkennung der Buchstaben ausgewählt werden.
Es stehen folgende Merkmale zur Verfügung
- 'default'"default""default""default""default"
-
'ratio'"ratio""ratio""ratio""ratio" und 'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar" werden ausgewählt.
- 'ratio'"ratio""ratio""ratio""ratio"
-
Seitenverhältnis des Zeichens.
- 'width'"width""width""width""width"
-
Breite des Zeichens (nicht skalierungsinvariant).
- 'height'"height""height""height""height"
-
Höhe des Zeichens(nicht skalierungsinvariant).
- 'zoom_factor'"zoom_factor""zoom_factor""zoom_factor""zoom_factor"
-
Größenunterschied zwischen aktuellem Zeichen und
den Werten von WidthPatternWidthPatternWidthPatternWidthPatternwidthPattern
und HeightPatternHeightPatternHeightPatternHeightPatternheightPattern
(nicht skalierungsinvariant).
- 'foreground'"foreground""foreground""foreground""foreground"
-
Relativer Anteil der Vordergrund-Pixel.
- 'foreground_grid_9'"foreground_grid_9""foreground_grid_9""foreground_grid_9""foreground_grid_9"
-
Relative Anteil der Vordergrund-Pixel in einem 3x3
Raster innerhalb des umschließenden Rechtecks des Zeichens.
- 'foreground_grid_16'"foreground_grid_16""foreground_grid_16""foreground_grid_16""foreground_grid_16"
-
Relative Anteil der Vordergrund-Pixel in einem 4x4
Raster innerhalb des umschließenden Rechtecks des Zeichens.
- 'anisometry'"anisometry""anisometry""anisometry""anisometry"
-
Formmerkmal Anisometry.
- 'compactness'"compactness""compactness""compactness""compactness"
-
Formmerkmal Compactness.
- 'convexity'"convexity""convexity""convexity""convexity"
-
Formmerkmal Convexity.
- 'moments_region_2nd_invar'"moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar"
-
Normierte 2. geometrischen Momente der Region. Siehe auch
moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarMomentsRegion2ndInvar
.
- 'moments_region_2nd_rel_invar'"moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar"
-
Normierte 2. relativen geometrischen Momente der Region. Siehe auch
moments_region_2nd_rel_invarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvar
.
- 'moments_region_3rd_invar'"moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar"
-
Normierte 3. geometrischen Momente der Region. Siehe auch
moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvar
.
- 'moments_central'"moments_central""moments_central""moments_central""moments_central"
-
Normierte zentrale geometrischen Momente der Region. Siehe auch
moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentral
.
- 'phi'"phi""phi""phi""phi"
-
Sinus und Kosinus der Orientierung (Winkel) des Zeichens.
- 'num_connect'"num_connect""num_connect""num_connect""num_connect"
-
Anzahl der Zusammenhangskomponenten.
- 'num_holes'"num_holes""num_holes""num_holes""num_holes"
-
Anzahl der Hohlflächen.
- 'projection_horizontal'"projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal"
-
Horizontal Projektion der Grauwert.
- 'projection_horizontal_invar'"projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar"
-
Horizontal Projektion der Grauwerte die maximal skaliert sind.
- 'projection_vertical'"projection_vertical""projection_vertical""projection_vertical""projection_vertical"
-
Vertikale Projektion der Grauwert.
- 'projection_vertical_invar'"projection_vertical_invar""projection_vertical_invar""projection_vertical_invar""projection_vertical_invar"
-
Vertikale Projektion der Grauwerte die maximal skaliert sind.
- 'cooc'"cooc""cooc""cooc""cooc"
-
Werte der binären Cooccurrence Matrix.
- 'moments_gray_plane'"moments_gray_plane""moments_gray_plane""moments_gray_plane""moments_gray_plane"
-
Normierte Grauwertmomente und die Winkel der Grauwertebene.
- 'num_runs'"num_runs""num_runs""num_runs""num_runs"
-
Anzahl der Sehnen der Region normiert auf die Höhe.
- 'chord_histo'"chord_histo""chord_histo""chord_histo""chord_histo"
-
Häufigkeit der Sehnen pro Zeile (nicht skalierungsinvariant).
- 'pixel'"pixel""pixel""pixel""pixel"
-
Grauwert der Zeichens.
- 'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar"
-
Grauwerte der Zeichens mit automatischer maximaler Grauwertspreizung.
- 'pixel_binary'"pixel_binary""pixel_binary""pixel_binary""pixel_binary"
-
Region des Zeichens als Binärbild auf eine Größe von
WidthPatternWidthPatternWidthPatternWidthPatternwidthPattern
x HeightPatternHeightPatternHeightPatternHeightPatternheightPattern
skaliert.
- 'gradient_8dir'"gradient_8dir""gradient_8dir""gradient_8dir""gradient_8dir"
-
Die Gradienten des Zeichens werden berechnet. Die
Gradientenrichtungen werden in 8 Richtungen diskretisiert. Das
Amplitudenbild wird entsprechend der diskretisierten Richtungen in
8 Kanäle aufgeteilt. In jedem der 8 Kanäle werden auf einem 5x5 Gitter Stichproben entnommen. Diese Stichproben bilden
die Merkmale.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Parameter
WidthPatternWidthPatternWidthPatternWidthPatternwidthPattern
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Breite des Eingabenetzes.
Defaultwert: 8
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 20
Typischer Wertebereich: 1
≤
WidthPattern
WidthPattern
WidthPattern
WidthPattern
widthPattern
≤
100
HeightPatternHeightPatternHeightPatternHeightPatternheightPattern
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Höhe des Eingabenetzes.
Defaultwert: 10
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 20
Typischer Wertebereich: 1
≤
HeightPattern
HeightPattern
HeightPattern
HeightPattern
heightPattern
≤
100
InterpolationInterpolationInterpolationInterpolationinterpolation
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Interpolationsmodus bei der Skalierung der Zeichen.
Defaultwert: 1
Werteliste: 0, 1, 2
FeaturesFeaturesFeaturesFeaturesfeatures
(input_control) string(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Zusätzliche Merkmale.
Defaultwert:
'default'
"default"
"default"
"default"
"default"
Werteliste: 'anisometry'"anisometry""anisometry""anisometry""anisometry", 'chord_histo'"chord_histo""chord_histo""chord_histo""chord_histo", 'compactness'"compactness""compactness""compactness""compactness", 'convexity'"convexity""convexity""convexity""convexity", 'cooc'"cooc""cooc""cooc""cooc", 'default'"default""default""default""default", 'foreground'"foreground""foreground""foreground""foreground", 'foreground_grid_16'"foreground_grid_16""foreground_grid_16""foreground_grid_16""foreground_grid_16", 'foreground_grid_9'"foreground_grid_9""foreground_grid_9""foreground_grid_9""foreground_grid_9", 'gradient_8dir'"gradient_8dir""gradient_8dir""gradient_8dir""gradient_8dir", 'height'"height""height""height""height", 'moments_central'"moments_central""moments_central""moments_central""moments_central", 'moments_gray_plane'"moments_gray_plane""moments_gray_plane""moments_gray_plane""moments_gray_plane", 'moments_region_2nd_invar'"moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar""moments_region_2nd_invar", 'moments_region_2nd_rel_invar'"moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar""moments_region_2nd_rel_invar", 'moments_region_3rd_invar'"moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar""moments_region_3rd_invar", 'num_connect'"num_connect""num_connect""num_connect""num_connect", 'num_holes'"num_holes""num_holes""num_holes""num_holes", 'num_runs'"num_runs""num_runs""num_runs""num_runs", 'phi'"phi""phi""phi""phi", 'pixel'"pixel""pixel""pixel""pixel", 'pixel_binary'"pixel_binary""pixel_binary""pixel_binary""pixel_binary", 'pixel_invar'"pixel_invar""pixel_invar""pixel_invar""pixel_invar", 'projection_horizontal'"projection_horizontal""projection_horizontal""projection_horizontal""projection_horizontal", 'projection_horizontal_invar'"projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar""projection_horizontal_invar", 'projection_vertical'"projection_vertical""projection_vertical""projection_vertical""projection_vertical", 'projection_vertical_invar'"projection_vertical_invar""projection_vertical_invar""projection_vertical_invar""projection_vertical_invar", 'ratio'"ratio""ratio""ratio""ratio", 'width'"width""width""width""width", 'zoom_factor'"zoom_factor""zoom_factor""zoom_factor""zoom_factor"
CharacterCharacterCharacterCharactercharacter
(input_control) string-array →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Alle Zeichen des Zeichensatzes.
Defaultwert:
['a','b','c']
["a","b","c"]
["a","b","c"]
["a","b","c"]
["a","b","c"]
OcrHandleOcrHandleOcrHandleOcrHandleocrHandle
(output_control) ocr_box →
HOCRBox, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
ID des erzeugten OCR-Klassifikators.
Beispiel (C)
HTuple WidthPattern,HeightPattern,Interpolation,
Features,OcrHandle;
create_tuple(&WidthPattern,1);
set_i(WidthPattern,8,0);
create_tuple(&HeightPattern,1);
set_i(HeightPattern,10,0);
create_tuple(&Interpolation,1);
set_i(Interpolation,1,0);
create_tuple(&Features,1);
set_s(Features,"default",0);
create_tuple(&Character,26+26+10);
set_s(Character,"a",0);
set_s(Character,"b",1);
/* ... */
set_s(Character,"A",27);
set_s(Character,"B",28);
/* ... */
set_s(Character,"1",53);
set_s(Character,"2",54);
/* ... */
T_create_ocr_class_box(WidthPattern,HeightPattern,Interpolation,
Features,Character,&OcrHandle);
Ergebnis
Sind die Parameter korrekt, dann liefert
create_ocr_class_boxcreate_ocr_class_boxCreateOcrClassBoxCreateOcrClassBoxCreateOcrClassBox
den Wert 2 (H_MSG_TRUE).
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDb
Nachfolger
traind_ocr_class_boxtraind_ocr_class_boxTraindOcrClassBoxTraindOcrClassBoxTraindOcrClassBox
,
trainf_ocr_class_boxtrainf_ocr_class_boxTrainfOcrClassBoxTrainfOcrClassBoxTrainfOcrClassBox
,
info_ocr_class_boxinfo_ocr_class_boxInfoOcrClassBoxInfoOcrClassBoxInfoOcrClassBox
,
write_ocrwrite_ocrWriteOcrWriteOcrWriteOcr
,
ocr_change_charocr_change_charOcrChangeCharOcrChangeCharOcrChangeChar
Alternativen
create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlpCreateOcrClassMlp
,
create_ocr_class_svmcreate_ocr_class_svmCreateOcrClassSvmCreateOcrClassSvmCreateOcrClassSvm
Siehe auch
affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage
,
ocr_change_charocr_change_charOcrChangeCharOcrChangeCharOcrChangeChar
,
moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarMomentsRegion2ndInvar
,
moments_region_2nd_rel_invarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvar
,
moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvar
,
moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentral
Modul
OCR/OCV