《zw版·Halcon-delphi系列原创教程》 Halcon分类函数011,ocr,字符识别

《zw版·Halcon-delphi系列原创教程》 Halcon分类函数011,ocr,字符识别

为方便阅读,在不影响说明的前提下,笔者对函数进行了简化:

  • :: 用符号“**”,替换:“procedure”
  • :: 用大写字母“X”,替换:“IHUntypedObjectX”
  • :: 省略了字符:“const”、“OleVariant”

【示例】 说明

函数:

procedure AddNoiseWhiteContourXld( const Contours: IHUntypedObjectX; out NoisyContours: IHUntypedObjectX; NumRegrPoints: OleVariant; Amp: OleVariant);

简化后为:

** AddNoiseWhiteContourXld( Contours: X; out NoisyContours: X; NumRegrPoints, Amp);

  1 ** AppendOcrTrainf( Character: X; Image: X; Class_, TrainingFile); 
  2 说明,  append_ocr_trainf,将字符添加到一个测试文件中。
  3 
  4 ** ClearAllOcrClassKnn; 
  5 说明,  清除所有创建的OCR-knn分级器
  6 
  7 ** ClearAllOcrClassMlp; 
  8 说明,  clear_all_ocr_class_mlp,清除所有的create_ocr_class_mlp创建的OCR分级器,释放分级器占据的存储空间。
  9 
 10 ** ClearAllOcrClassSvm; 
 11 说明,  clear_all_ocr_class_svm,清除所有的基于OCR分级器的SVM,释放相应的存储空间。
 12 
 13 ** ClearOcrClassKnn( OCRHandle);
 14 
 15 ** ClearOcrClassMlp( OCRHandle); 
 16 说明,  clear_ocr_class_mlp,清除所有的由OCRHandle给定的且由create_ocr_class_mlp创建的OCR分级器,释放所有的分级器占据的存储空间。
 17 
 18 ** ClearOcrClassSvm( OCRHandle); 
 19 说明,  clear_ocr_class_svm,清除基于OCR分级器的一个SVM,释放相应的存储空间。
 20 
 21 ** CloseAllOcrs; 
 22 说明,  close_all_ocrs,删除所有光字符,释放存储空间,但会丢失所有的测试数据。
 23 
 24 ** CloseOcr( OCRHandle); 
 25 说明,  close_ocr,重新分配拥有OcrHandle数目的分级器的存储,但所有相应的数据会丢失,不过这些数据可由write_ocr事先保存。
 26 
 27 ** ConcatOcrTrainf( SingleFiles, ComposedFile); 
 28 说明,  concat_ocr_trainf,合并测试文件。
 29 
 30 ** CreateOcrClassBox( WidthPattern, HeightPattern, Interpolation, Features, Character, out OCRHandle); 
 31 说明,  create_ocr_class_box,创建新的OCR分级器。
 32 
 33 ** CreateOcrClassKnn( WidthCharacter, HeightCharacter, Interpolation, Features, Characters, GenParamNames, GenParamValues, out OCRHandle); 
 34 说明,  创建knn分级器。
 35 
 36 ** CreateOcrClassMlp( WidthCharacter, HeightCharacter, Interpolation, Features, Characters, NumHidden, Preprocessing, NumComponents, RandSeed, out OCRHandle); 
 37 说明,  create_ocr_class_mlp,利用MLP(多层感知器)创建一个新的OCR分级器。
 38 
 39 ** CreateOcrClassSvm( WidthCharacter, HeightCharacter, Interpolation, Features, Characters, KernelType, KernelParam, Nu, Mode, Preprocessing, NumComponents, out OCRHandle); 
 40 说明,  create_ocr_class_svm,利用支持向量机创建一个OCR分级器。
 41 
 42 ** DeserializeOcr( SerializedItemHandle, out OCRHandle); 
 43 说明,  ocr数据转换
 44 
 45 ** DeserializeOcrClassKnn( SerializedItemHandle, out OCRHandle); 
 46 说明,  ocr-knn分类器数据转换
 47 
 48 ** DeserializeOcrClassMlp( SerializedItemHandle, out OCRHandle); 
 49 说明,  ocr-mlp分类器数据转换
 50 
 51 ** DeserializeOcrClassSvm( SerializedItemHandle, out OCRHandle); 
 52 说明,  ocr-svm分类器数据转换
 53 
 54 ** DoOcrMulti( Character: X; Image: X; OCRHandle, out Class_, out Confidence); 
 55 说明,  do_ocr_multi,给每一个Character(字符)分配一个类。
 56 
 57 ** DoOcrMultiClassKnn( Character: X; Image: X; OCRHandle, out Class_, out Confidence); 
 58 说明,  do_ocr_multi,给多个Character(字符)分配一个KNN类。
 59 
 60 ** DoOcrMultiClassMlp( Character: X; Image: X; OCRHandle, out Class_, out Confidence); 
 61 说明,  do_ocr_multi_class_mlp,为根据给定区域字符和OCR分级器OCRHandle的灰度图像值而给定的每个字符计算出最好的类,将类返回到Class中,且将类的置信度返回到Confidence中。
 62 
 63 ** DoOcrMultiClassSvm( Character: X; Image: X; OCRHandle, out Class_); 
 64 说明,  do_ocr_multi_class_svm,根据基于OCR分级器的SVM将大量字符分类。
 65 
 66 ** DoOcrSingle( Character: X; Image: X; OCRHandle, out Classes, out Confidences); 
 67 说明,  do_ocr_single,给一些Character(字符)分配一些类。
 68 
 69 ** DoOcrSingleClassKnn( Character: X; Image: X; OCRHandle, NumClasses, NumNeighbors, out Class_, out Confidence); 
 70 说明,  do_ocr_multi,给每一个Character(字符)分配一个KNN类。
 71 
 72 ** DoOcrSingleClassMlp( Character: X; Image: X; OCRHandle, Num, out Class_, out Confidence); 
 73 说明,  do_ocr_single_class_mlp,为根据给定区域字符和OCR分级器OCRHandle的灰度图像值而给定的字符计算出最好的Num类,将类返回到Class中,且将类的置信度返回到Confidence中。
 74 
 75 ** DoOcrSingleClassSvm( Character: X; Image: X; OCRHandle, Num, out Class_); 
 76 说明,  do_ocr_single_class_svm,根据基于OCR分级器的SVM将单个字符分类。
 77 
 78 ** DoOcrWordKnn( Character: X; Image: X; OCRHandle, Expression, NumAlternatives, NumCorrections, out Class_, out Confidence, out Word, out Score); 
 79 说明,  将字符组作为一个实体。
 80 
 81 ** DoOcrWordMlp( Character: X; Image: X; OCRHandle, Expression, NumAlternatives, NumCorrections, out Class_, out Confidence, out Word, out Score); 
 82 说明,  do_ocr_word_mlp,功能与do?_ocr_multi_class_mlp相同,只是do_ocr_word_mlp将字符组作为一个实体。
 83 
 84 ** DoOcrWordSvm( Character: X; Image: X; OCRHandle, Expression, NumAlternatives, NumCorrections, out Class_, out Word, out Score); 
 85 说明,  do_ocr_word_svm,利用OCR分级器将一系列相关字符分类。
 86 
 87 ** GetFeaturesOcrClassKnn( Character: X; OCRHandle, Transform, out Features); 
 88 说明,  根据OCR分级器OCRHandl,e确定的字符计算其特征参数,并将它们返回到Features。
 89 
 90 ** GetFeaturesOcrClassMlp( Character: X; OCRHandle, Transform, out Features); 
 91 说明,  get_features_ocr_class_mlp,为根据OCR分级器OCRHandle确定的字符计算其特征参数,并将它们返回到Features。
 92 
 93 ** GetFeaturesOcrClassSvm( Character: X; OCRHandle, Transform, out Features); 
 94 说明,  get_features_ocr_class_svm,计算一个字符的特征。
 95 
 96 ** GetParamsOcrClassKnn( OCRHandle, out WidthCharacter, out HeightCharacter, out Interpolation, out Features, out Characters, out Preprocessing, out NumTrees); 
 97 说明,  返回knn-ocr分类器的参数。
 98 
 99 ** GetParamsOcrClassMlp( OCRHandle, out WidthCharacter, out HeightCharacter, out Interpolation, out Features, out Characters, out NumHidden, out Preprocessing, out NumComponents); 
100 说明,  get_params_ocr_class_mlp,返回一个OCR分级器的参数只有当分级器由do_ocr_multi_class_mlp创建时。
101 
102 ** GetParamsOcrClassSvm( OCRHandle, out WidthCharacter, out HeightCharacter, out Interpolation, out Features, out Characters, out KernelType, out KernelParam, out Nu, out Mode, out Preprocessing, out NumComponents); 
103 说明,  get_params_ocr_class_svm,返回一个OCR分级器的参数。
104 
105 ** GetPrepInfoOcrClassMlp( OCRHandle, TrainingFile, Preprocessing, out InformationCont, out CumInformationCont); 
106 说明,  get_prep_info_ocr_class_mlp,计算OCR分级器预设定矢量特性的信息。
107 
108 ** GetPrepInfoOcrClassSvm( OCRHandle, TrainingFile, Preprocessing, out InformationCont, out CumInformationCont); 
109 说明,  get_prep_info_ocr_class_svm,计算基于OCR分级器的SVM的预定义特征矢量的信息内容。
110 
111 ** GetSupportVectorNumOcrClassSvm( OCRHandle, out NumSupportVectors, out NumSVPerSVM); 
112 说明,  get_support_vector_num_ocr_class_svm,返回OCR分级器支持的矢量的数目。
113 
114 ** GetSupportVectorOcrClassSvm( OCRHandle, IndexSupportVector, out Index); 
115 说明,  get_support_vector_ocr_class_svm,返回基于支持向量机的已测试OCR分级器中支持向量坐标。
116 
117 ** InfoOcrClassBox( OCRHandle, out WidthPattern, out HeightPattern, out Interpolation, out WidthMaxChar, out HeightMaxChar, out Features, out Characters); 
118 说明,  info_ocr_class_box,反馈ocr的有关信息。
119 
120 ** OcrChangeChar( OCRHandle, Character); 
121 说明,  ocr_change_char,为字符建立新的查阅表。
122 
123 ** OcrGetFeatures( Character: X; OCRHandle, out FeatureVector); 
124 说明,  ocr_get_features,计算给定Character(字符)的特征参数。
125 
126 ** ProtectOcrTrainf( TrainingFile, Password, TrainingFileProtected);
127 
128 ** ReadOcr( FileName, out OCRHandle); 
129 说明,  read_ocr,从文件的FileName(文件名)读取OCR分级器。
130 
131 ** ReadOcrClassKnn( FileName, out OCRHandle); 
132 说明,  读取ocr-knn数据
133 
134 ** ReadOcrClassMlp( FileName, out OCRHandle); 
135 说明,  read_ocr_class_mlp,从一个文件中读取OCR分级器。
136 
137 ** ReadOcrClassSvm( FileName, out OCRHandle); 
138 说明,  read_ocr_class_svm,从文件中读取基于OCR分级器的SVM。
139 
140 ** ReadOcrTrainf( out Characters: X; TrainingFile, out CharacterNames); 
141 说明,  read_ocr_trainf,从文件中读取字符,将其转换到图像中。
142 
143 ** ReadOcrTrainfNames( TrainingFile, out CharacterNames, out CharacterCount); 
144 说明,  read_ocr_trainf_names,查询哪些字符存储在测试文件中。
145 
146 ** ReadOcrTrainfNamesProtected( TrainingFile, Password, out CharacterNames, out CharacterCount); 
147 说明,  读取ocr数据
148 
149 ** ReadOcrTrainfSelect( out Characters: X; TrainingFile, SearchNames, out FoundNames); 
150 说明,  read_ocr_trainf_select,从文件中读取测试特定字符,将其转换到图像中。
151 
152 ** ReduceOcrClassSvm( OCRHandle, Method, MinRemainingSV, MaxError, out OCRHandleReduced); 
153 说明,  reduce_ocr_class_svm,根据一个减小的SVM来接近一个基于OCR分级器的SVM。
154 
155 ** SelectFeatureSetTrainfKnn( TrainingFile, FeatureList, SelectionMethod, Width, Height, GenParamNames, GenParamValues, out OCRHandle, out FeatureSet, out Score); 
156 说明,  根据knn训练参数特征选择对象
157 
158 ** SelectFeatureSetTrainfMlp( TrainingFile, FeatureList, SelectionMethod, Width, Height, GenParamNames, GenParamValues, out OCRHandle, out FeatureSet, out Score); 
159 说明,  根据mlp训练参数特征选择对象
160 
161 ** SelectFeatureSetTrainfMlpProtected( TrainingFile, Password, FeatureList, SelectionMethod, Width, Height, GenParamNames, GenParamValues, out OCRHandle, out FeatureSet, out Score); 
162 说明,  根据mlp训练参数特征选择对象
163 
164 ** SelectFeatureSetTrainfSvm( TrainingFile, FeatureList, SelectionMethod, Width, Height, GenParamNames, GenParamValues, out OCRHandle, out FeatureSet, out Score); 
165 说明,  根据svm训练参数特征选择对象
166 
167 ** SelectFeatureSetTrainfSvmProtected( TrainingFile, Password, FeatureList, SelectionMethod, Width, Height, GenParamNames, GenParamValues, out OCRHandle, out FeatureSet, out Score); 
168 说明,  根据svm训练参数特征选择对象
169 
170 ** SerializeOcr( OCRHandle, out SerializedItemHandle); 
171 说明,  ocr数据序列化
172 
173 ** SerializeOcrClassKnn( OCRHandle, out SerializedItemHandle); 
174 说明,  knn分类器数据序列化
175 
176 ** SerializeOcrClassMlp( OCRHandle, out SerializedItemHandle); 
177 说明,  mlp分类器数据序列化
178 
179 ** SerializeOcrClassSvm( OCRHandle, out SerializedItemHandle); 
180 说明,  svm分类器数据序列化
181 
182 ** TestdOcrClassBox( Character: X; Image: X; OCRHandle, Class_, out Confidence); 
183 说明,  testd_ocr_class_box,测试给定类中字符的置信度。
184 
185 ** TraindOcrClassBox( Character: X; Image: X; OCRHandle, Class_, out AvgConfidence); 
186 说明,  traind_ocr_class_box,通过一幅图像的特定区域直接测试分级器。
187 
188 ** TrainfOcrClassBox( OCRHandle, TrainingFile, out AvgConfidence); 
189 说明,  trainf_ocr_class_box,根据指定测试文件测试分级器的OCRHandle。
190 
191 ** TrainfOcrClassKnn( OCRHandle, TrainingFile, GenParamNames, GenParamValues); 
192 说明,  ocr-knn分类器训练
193 
194 ** TrainfOcrClassMlp( OCRHandle, TrainingFile, MaxIterations, WeightTolerance, ErrorTolerance, out Error, out ErrorLog); 
195 说明,  trainf_ocr_class_mlp,测试OCR分级器的OCRHandle,根据存储在OCR文件中的测试特性。
196 
197 ** TrainfOcrClassMlpProtected( OCRHandle, TrainingFile, Password, MaxIterations, WeightTolerance, ErrorTolerance, out Error, out ErrorLog); 
198 说明,  ocr-mlp分类器训练
199 
200 ** TrainfOcrClassSvm( OCRHandle, TrainingFile, Epsilon, TrainMode); 
201 说明,  trainf_ocr_class_svm,测试一个OCR分级器。
202 
203 ** TrainfOcrClassSvmProtected( OCRHandle, TrainingFile, Password, Epsilon, TrainMode); 
204 说明,  ocr-svm分类器训练
205 
206 ** WriteOcr( OCRHandle, FileName); 
207 说明,  write_ocr,将OCR分级器的OCRHandle写入文件的FileName(文件名)。
208 
209 ** WriteOcrClassKnn( OCRHandle, FileName); 
210 说明,  保存ocr-knn分类器数据
211 
212 ** WriteOcrClassMlp( OCRHandle, FileName); 
213 说明,  write_ocr_class_mlp,将OCR分级器的OCRHandle写入由文件名确定的文件中。
214 
215 ** WriteOcrClassSvm( OCRHandle, FileName); 
216 说明,  write_ocr_class_svm,将一个OCR分级器写入文件。
217 
218 ** WriteOcrTrainf( Character: X; Image: X; Class_, TrainingFile); 
219 说明,  write_ocr_trainf,将已测试的字符存储到文件中。
220 
221 ** WriteOcrTrainfImage( Character: X; Class_, TrainingFile); 
222 说明,  write_ocr_trainf_image,将字符写入正在测试的文件中。
223 
224 ** ZeroCrossing( Image: X; out RegionCrossing: X); 
225 说明,  zero_crossing,从一幅图像中提取零相交。
226 
227 ** ZeroCrossingsFunct1D( Function_, out ZeroCrossings); 
228 说明,  zero_crossings_funct_1d,计算一个函数的零点。
229 
230 ** ZeroCrossingSubPix( Image: X; out ZeroCrossings: X); 
231 说明,  zero_crossing_sub_pix,根据子像素准确性从一幅图像中提取零相交。