Halcon机器视觉论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5235|回复: 8
收起左侧

[已解决] halcon字符OCR识别案例

[复制链接]
  • TA的每日心情
    害羞
    2018-7-29 07:46
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    12

    帖子

    1128

    积分

    Rank: 6Rank: 6

    积分
    1128

    突出贡献切换助手验证会员

    发表于 2016-9-8 09:33:52 | 显示全部楼层 |阅读模式

    黄金VIP |主题 1|帖子 12|积分 1128

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    问题点如下:1:有几个字符容易识别错乱,1与字母I,标点符号.容易识别成*。
    2:第三行开头字母2的印刷出现断裂情况会识别错误。
    代码如下:
    1. dev_set_check('give_error')
    2. dev_set_draw('margin')
    3. dev_set_colored(12)
    4. dev_close_window()
    5. dev_open_window(0, 0, 900, 700, 'black', WindowHandle)

    6. read_image(Image, 'D:/鸟叔培训/OCR识别/箱子/1/1.bmp')

    7. * draw_rectangle2(WindowHandle, RowCenter, ColCenter, Phi1, Length11, Length21)
    8. * gen_rectangle2(ModelRect, RowCenter, ColCenter, Phi1, Length11, Length21)
    9. * reduce_domain(Image, ModelRect, ImageReduced)

    10. *定位创建H字符的轮廓模板定位字符区域
    11. * create_shape_model(ImageReduced, 'auto', rad(-3), rad(6), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
    12. * if(ModelID > -1)
    13. *     write_shape_model(ModelID, 'D:/鸟叔培训/OCR识别/字符轮廓模板——1.shm')
    14. *     clear_shape_model(ModelID)
    15. *     ModelID := -1
    16. * endif
    17. *保存设定字符模板中心坐标信息
    18. * ModelRectInfo := [RowCenter, ColCenter]
    19. * write_tuple(ModelRectInfo, 'D:/鸟叔培训/OCR识别/字符模板中心坐标——1.tup')

    20. Char1 := []
    21. Char2 := []
    22. Char3 := []
    23. * Ocr :=[]

    24. *绘制字符出现区域减小识别时间
    25. draw_rectangle2(WindowHandle, Row, Column, Phi, Length1, Length2)
    26. gen_rectangle2(TestRect, Row, Column, Phi, Length1, Length2)
    27. *读取模板信息
    28. read_shape_model('D:/鸟叔培训/OCR识别/字符轮廓模板——1.shm',ID)
    29. *读取字符检测区域信息
    30. read_tuple('D:/鸟叔培训/OCR识别/字符模板中心坐标——1.tup',RectInfo)
    31. *读取OCR字库
    32. read_ocr_class_mlp('Industrial_NoRej.omc',OCRHandle)

    33. * Image Acquisition 01: Code generated by Image Acquisition 01
    34. list_files ('D:/鸟叔培训/OCR识别/箱子/1', ['files','follow_links'], ImageFiles)
    35. tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)

    36. ,'ignore_case'], ImageFiles)
    37. for Index := 0 to |ImageFiles| - 1 by 1
    38.     read_image (Image, ImageFiles[Index])
    39.     *模板匹配定位字符区域
    40.     find_shape_model(Image, ID, rad(-3), rad(6), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
    41.     if(Score > 0.9)
    42.         *仿射变换跟随字符测量区域
    43.         vector_angle_to_rigid(RectInfo[0],RectInfo[1],0,Row, Column, Angle,HomMat2D)
    44.         affine_trans_region(TestRect, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
    45.         *分割提取字符区域
    46.         reduce_domain(Image, RegionAffineTrans, ImageReduced)
    47.         *动态阈值分割
    48.         mean_image(ImageReduced, ImageMean, 50, 50)
    49.         dyn_threshold(ImageReduced,ImageMean, RegionDynThresh, 20, 'dark')
    50.         *连通性分析
    51.         fill_up_shape(RegionDynThresh, RegionFillUp, 'area', 1, 100)
    52.         closing_circle(RegionFillUp, RegionClosing, 2)
    53.         connection(RegionClosing, ConnectedRegions)
    54.         select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 80, 2000)
    55.         opening_circle(SelectedRegions, RegionOpening, 1)
    56.         *横向膨胀把字符连接
    57.         dilation_rectangle1(SelectedRegions, RegionDilation, 80, 2)
    58.         union1(RegionDilation, RegionUnion)
    59.         connection(RegionUnion, OcrConnectedRegions)
    60.         sort_region(OcrConnectedRegions, SortedRegions1, 'first_point', 'true', 'row')
    61.         *排序选择行区域识别字符
    62.         count_obj(SortedRegions1, Number)
    63.         for i:=0 to Number-1 by 1
    64.             select_obj(SortedRegions1, ObjectSelected, i+1)
    65.             intersection(SelectedRegions, ObjectSelected, RegionIntersection)
    66.             *排序字符区域
    67.             sort_region(RegionIntersection, SortedRegions, 'character', 'true', 'column')
    68.             *执行字符识别
    69.             do_ocr_multi_class_mlp(SortedRegions, Image, OCRHandle, Class, Confidence)
    70. *             do_ocr_multi_class_mlp(SortedRegions, Image, OCRHandle, Ocr, Confidence)
    71.             if(i=0)
    72.                 Char1 := Class
    73.             elseif(i=1)
    74.                 Char2 := Class
    75.             elseif(i=2)
    76.                 Char3 := Class
    77.             endif

    78.         endfor

    79.         *显示提示信息
    80.         disp_obj(Image,WindowHandle)
    81.         disp_obj(SelectedRegions, WindowHandle)
    82.         disp_message(WindowHandle, Char1, 'window', 20, 20, 'red', 'true')
    83.         disp_message(WindowHandle, Char2, 'window', 20, 50, 'red', 'true')
    84.         disp_message(WindowHandle, Char3, 'window', 20, 80, 'red', 'true')

    85.         stop()
    86.     endif

    87. endfor



    88. clear_shape_model(ID)
    复制代码
    相关图片:链接:http://pan.baidu.com/s/1kVPOu7H 密码:wq1m

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    耍酷
    昨天 09:26
  • 签到天数: 658 天

    连续签到: 11 天

    [LV.9]以坛为家II

    354

    主题

    1372

    帖子

    5429

    积分

    Rank: 9

    积分
    5429

    突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

    发表于 2016-9-8 09:50:00 | 显示全部楼层

    管理员 |主题 354|帖子 1372|积分 5429

    1.在进行OCR之前,需要确保字符不会存在残缺,如果存在,则立刻停止进行OCR,并且提示字符印刷缺陷;
    像这种残缺的字符,本身已经是不合格了,就不需要进行识别了。
    2.识别错误,查看你的训练库是否正常,对于这种含有字母和数字的,其中1和i本身区别就不大,你怎么去判断是对还是错呢?
    所以最好的方式是把英文识别和数字识别分开进行。
    3.对于符号,也是特殊情况,这种符号就没有必要进行识别了,因为他本身并没有什么意义。工业生产中,只有其他字母和数字清晰
    就完全没有问题了。
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系

    该用户从未签到

    0

    主题

    5

    帖子

    421

    积分

    Rank: 2Rank: 2

    积分
    421
    发表于 2016-9-30 09:01:24 | 显示全部楼层

    正式员工 |主题 0|帖子 5|积分 421

    没有 字符轮廓模板文件发出了有什么用

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-7-29 07:46
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    12

    帖子

    1128

    积分

    Rank: 6Rank: 6

    积分
    1128

    突出贡献切换助手验证会员

     楼主| 发表于 2017-3-29 22:31:32 | 显示全部楼层

    黄金VIP |主题 1|帖子 12|积分 1128

    RE: halcon字符OCR识别案例

    zj507071 发表于 2016-9-30 09:01
    没有 字符轮廓模板文件发出了有什么用

    你也是人才,要人喂你啊?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-8-5 13:00
  • 签到天数: 44 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    43

    帖子

    525

    积分

    Rank: 6Rank: 6

    积分
    525
    发表于 2017-6-2 15:35:18 | 显示全部楼层

    黄金VIP |主题 0|帖子 43|积分 525

    开头提到的问题怎么解决呢?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-4-21 12:08
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    1

    主题

    25

    帖子

    459

    积分

    Rank: 2Rank: 2

    积分
    459
    发表于 2019-3-26 11:02:14 | 显示全部楼层

    正式员工 |主题 1|帖子 25|积分 459

    下载来学习学习!!!!!!!!!!!!!!!!!!!

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    开心
    2019-5-20 13:10
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    帖子

    32

    积分

    Rank: 1

    积分
    32
    发表于 2019-5-15 17:53:00 | 显示全部楼层

    试用员工 |主题 1|帖子 12|积分 32

    兄弟 可以了 可以了

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver| Halcon机器视觉论坛  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by Discuz! X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表