1 Star 2 Fork 2

xiaodelea/CodeRecognition

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CodeRecognitionTezbTrain.hdev 5.66 KB
一键复制 编辑 原始数据 按行查看 历史
<?xml version="1.0" encoding="UTF-8"?>
<hdevelop file_version="1.0" halcon_version="10.0" cs="-653855433">
<procedure name="main">
<interface/>
<body>
<l>read_image (Image, 'D:/实习/图片/特种兵/C1_101.bmp')</l>
<l>emphasize (Image, ImageEmphasize0, 7, 7, 5)</l>
<l>binomial_filter (ImageEmphasize0, ImageBinomia0, 5, 5)</l>
<l>mean_image (ImageBinomia0, ImageMean0, 5, 5)</l>
<l>dyn_threshold (ImageBinomia0, ImageMean0, Region0, 50, 'light')</l>
<l>*threshold (ImageBinomia0, Region0, 120, 255)</l>
<l>closing_rectangle1 (Region0, RegionClosing00, 10, 20)</l>
<l>closing_rectangle1 (RegionClosing00, RegionClosing0, 30, 10)</l>
<l>closing_circle (RegionClosing0, RegionClosing01, 10)</l>
<l>opening_rectangle1 (RegionClosing01, RegionOpening0, 10, 1)</l>
<l>connection (RegionOpening0, ConnectedRegions0)</l>
<l>select_shape (ConnectedRegions0, SelectedRegions0, ['width','height'], 'and', [160,25], [250,70])</l>
<l>select_shape_std (SelectedRegions0, SelectedRegionsStd0, 'max_area', 70)</l>
<l>intersection (SelectedRegionsStd0, Region0, RegionIntersection0)</l>
<c>*旋转图像</c>
<l>smallest_rectangle2 (RegionIntersection0, Row0, Column0, Phi0, Length01, Length02)</l>
<l>tuple_deg (Phi0, Deg0)</l>
<l>rotate_image (Image, ImageRotate0, -Deg0, 'constant')</l>
<c>*处理旋转后的图像</c>
<l>emphasize (ImageRotate0, ImageEmphasize01, 7, 7, 5)</l>
<l>binomial_filter (ImageEmphasize01, ImageBinomial01, 5, 5)</l>
<l>mean_image (ImageBinomial01, ImageMean01, 3, 3)</l>
<l>dyn_threshold (ImageBinomial01, ImageMean01, Region01, 20, 'light')</l>
<l>*threshold (ImageBinomial01, Region01, 120, 255)</l>
<l>closing_rectangle1 (Region01, RegionClosing0011, 10, 30)</l>
<l>closing_rectangle1 (RegionClosing0011, RegionClosing011, 30, 10)</l>
<l>closing_circle (RegionClosing011, RegionClosing012, 10)</l>
<l>opening_rectangle1 (RegionClosing012, RegionOpening01, 10, 1)</l>
<l>*closing_circle (Region01, RegionClosing01, 10)</l>
<l>*opening_circle (RegionClosing01, RegionOpening01, 5)</l>
<l>connection (RegionOpening01, ConnectedRegions01)</l>
<l>select_shape (ConnectedRegions01, SelectedRegions01, ['width','height'], 'and', [160,25], [250,70])</l>
<l>select_shape_std (SelectedRegions01, SelectedRegionsStd01, 'max_area', 70)</l>
<l>intersection (SelectedRegionsStd01, Region01, RegionIntersection01)</l>
<l>smallest_rectangle2 (RegionIntersection01, Row01, Column01, Phi01, Length011, Length012)</l>
<l>RegionPriorWidth:=116</l>
<l>RegionPriorHeight:=62</l>
<c>*第一行****************************</c>
<l>gen_rectangle2 (Rectangle1, Row01, Column01, 0, Length011+4, Length012+4)</l>
<l>reduce_domain (ImageBinomial01, Rectangle1, ImageReduced1)</l>
<l>*mean_image (ImageReduced1, ImageMean1, 5, 5)</l>
<l>*dyn_threshold (ImageReduced1, ImageMean1, Region1, 50, 'light')</l>
<l>threshold (ImageReduced1, Region1, 90, 255)</l>
<l>closing_rectangle1 (Region1, RegionClosing1, 2, 40)</l>
<l>closing_circle (RegionClosing1, RegionClosing11, 3)</l>
<l>connection (RegionClosing11, ConnectedRegions1)</l>
<l>shape_trans (ConnectedRegions1, RegionTrans1, 'rectangle1')</l>
<l>partition_rectangle (RegionTrans1, Partitioned1, 22, 60)</l>
<l>select_shape (Partitioned1, SelectedRegions1, ['width','height'], 'and', [12,35], [28,50])</l>
<l>intersection (SelectedRegions1, Region1, RegionIntersection1)</l>
<c>*选中字符</c>
<c>*排序</c>
<l>sort_region (RegionIntersection1, SortedRegions1, 'first_point', 'true', 'column')</l>
<c>*第二行***********************</c>
<l>gen_rectangle2 (Rectangle2, Row01+76, Column01, 0, 116, 24)</l>
<l>reduce_domain (ImageBinomial01, Rectangle2, ImageReduced2)</l>
<l>*mean_image (ImageReduced2, ImageMean2, 5, 5)</l>
<l>*dyn_threshold (ImageReduced2, ImageMean2, Region2, 50, 'light')</l>
<l>threshold (ImageReduced2, Region2, 100, 255)</l>
<l>closing_rectangle1 (Region2, RegionClosing2, 2, 40)</l>
<l>closing_circle (RegionClosing2, RegionClosing21, 3.5)</l>
<l>connection (RegionClosing21, ConnectedRegions2)</l>
<l>shape_trans (ConnectedRegions2, RegionTrans2, 'rectangle1')</l>
<l>partition_rectangle (RegionTrans2, Partitioned2, 22, 60)</l>
<l>select_shape (Partitioned2, SelectedRegions2, ['width','height'], 'and', [12,35], [28,50])</l>
<l>intersection (SelectedRegions2, Region2, RegionIntersection2)</l>
<c>*选中字符</c>
<c>*排序</c>
<l>sort_region (RegionIntersection2, SortedRegions2, 'first_point', 'true', 'column')</l>
<c>*训练**************</c>
<l>count_obj (SortedRegions1, Number1)</l>
<l>count_obj (SortedRegions2, Number2) </l>
<c>*创建训练文件******</c>
<l>words1:=['2','0','1','7','1','1','2','7']</l>
<l>words2:=['1','7','3','5','J','1']</l>
<l>TrainFile:='D:/github/CodeRecognition/TezbWords.trf'</l>
<l>dev_set_check('~give_error') </l>
<l>delete_file(TrainFile) </l>
<l>dev_set_check('~give_error')</l>
<l>for i:=1 to Number1 by 1 </l>
<l> select_obj(SortedRegions1, SingleWord, i) </l>
<l> append_ocr_trainf(SingleWord,ImageRotate0,words1[i-1],TrainFile) </l>
<l>endfor</l>
<l>for i:=1 to Number2 by 1 </l>
<l> select_obj(SortedRegions2, SingleWord, i) </l>
<l> append_ocr_trainf(SingleWord,ImageRotate0,words2[i-1],TrainFile) </l>
<l>endfor</l>
<c>*训练ocr</c>
<l>FontFile:='D:/github/CodeRecognition/TezbWords.omc'</l>
<c>*fontname='Industrial_0-9A-Z.omc'</c>
<l>read_ocr_trainf_names(TrainFile, CharacterNames, CharacterCount)</l>
<l>NumHidden:=400</l>
<l>*create_ocr_class_mlp (10, 20, 'constant', 'default', CharacterNames, NumHidden, 'none', 10, 42, OCRHandle)</l>
<l>read_ocr_class_mlp(FontFile, OCRHandle)</l>
<l>trainf_ocr_class_mlp (OCRHandle, TrainFile, 200, 1, 0.01, Error, ErrorLog)</l>
<l>*write_ocr_class_mlp(OCRHandle, FontFile) </l>
<l>clear_ocr_class_mlp(OCRHandle)</l>
<c></c>
<c></c>
<c></c>
</body>
<docu id="main">
<parameters/>
</docu>
</procedure>
</hdevelop>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xiaodelea/CodeRecognition.git
git@gitee.com:xiaodelea/CodeRecognition.git
xiaodelea
CodeRecognition
CodeRecognition
master

搜索帮助