Halcon机器视觉论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1828|回复: 6
收起左侧

[待解决] 金属表面的一维码该如何检测

[复制链接]
  • TA的每日心情
    害羞
    2018-4-16 11:21
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    3

    主题

    12

    帖子

    483

    积分

    Rank: 2Rank: 2

    积分
    483
    发表于 2017-2-16 14:49:02 | 显示全部楼层 |阅读模式

    正式员工 |主题 3|帖子 12|积分 483

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

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

    x

    一维条形码

    一维条形码


    请问下这个条码该如何检测?

    我的代码如下(暂时检测不了)

    1. dev_close_window ()
    2. read_image (Image, 'C:/Users/Homeman/Pictures/10_3215_27106b4b1684f46.jpg')
    3. get_image_size (Image, Width, Height)
    4. dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
    5. dev_display (Image)
    6. rgb1_to_gray (Image, GrayImage)
    7. set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
    8. dev_set_draw ('margin')
    9. dev_set_line_width (3)
    10. Colors := ['forest green','magenta','blue','red','yellow']
    11. dev_display (GrayImage)

    12. create_bar_code_model ([], [], BarCodeHandle)

    13. count_seconds (Start)
    14. find_bar_code (GrayImage, SymbolRegions, BarCodeHandle, 'Code 128', DecodedDataStrings)
    15. count_seconds (Stop)
    16. Duration := (Stop - Start) * 1000
    17. dev_display (SymbolRegions)
    18. get_bar_code_object (BarCodeObjects, BarCodeHandle, 'all', 'symbol_regions')
    19. get_bar_code_result (BarCodeHandle, 'all', 'decoded_types', DecodedDataTypes)
    20. *area_center (SymbolRegions, Area, Rows, Columns)
    21. for J := 0 to |DecodedDataStrings|-1 by 1
    22. dev_set_color (Colors[J])
    23. select_obj (BarCodeObjects, ObjectSelected, J+1)
    24. dev_display (ObjectSelected)
    25. endfor
    26. *循环获取,并且根据获取的条码数量,设置区域框的颜色
    27. if (|DecodedDataStrings| >= 1)
    28. *disp_message (WindowHandle, ['Found bar code(s) in ' + Duration

    29. 3.0f' + 'ms:','\n Type: ' + DecodedDataTypes + '\n Data: ' + DecodedDataStrings], 'window', 5*12, 12, 'black', 'true')
    30. disp_message (WindowHandle, '读取条形码,用时{' + Duration

    31. 3.0f' + 'ms}:' + '[' + DecodedDataTypes + ']' + '=' + '“' + DecodedDataStrings + '”', 'window', 12, 12, Colors, 'true')
    32. disp_continue_message (WindowHandle, 'black', 'true')
    33. stop()
    34. endif
    35. *判断读取到数据的数量,当大于1(数字可改为2、3……)个条码被解码时,显示信息在窗体的第12行,第12列的位置,并按顺序用不同的颜色标注
    36. clear_bar_code_model (BarCodeHandle)
    复制代码


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

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

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

  • TA的每日心情
    耍酷
    13 分钟前
  • 签到天数: 637 天

    连续签到: 1 天

    [LV.9]以坛为家II

    353

    主题

    1357

    帖子

    5265

    积分

    Rank: 9

    积分
    5265

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

    发表于 2017-2-16 16:53:17 | 显示全部楼层

    管理员 |主题 353|帖子 1357|积分 5265

    你把视野缩小点或者像素提高点再试试,我这边测试也是没法读取,设置很多参数都是这样的。
    1. read_image (Image, 'C:/Users/Administrator/Desktop/144722pt4091rroz931s09.jpg')
    2. rgb1_to_gray (Image, Image)
    3. emphasize (Image, Image, 5, 5, 1)
    4. draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)
    5. gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
    6. reduce_domain (Image, Rectangle, ImageReduced)
    7. create_bar_code_model ([], [], BarCodeHandle)
    8. find_bar_code (ImageReduced, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
    9. get_bar_code_object (CandidateRegions, BarCodeHandle, 'all', 'candidate_regions')
    10. if (|DecodedDataStrings| > 0)
    11.     count_obj (SymbolRegions, NumInterestingCand)
    12. else
    13.     count_obj (CandidateRegions, NumInterestingCand)
    14. endif
    15.    
    16. for IndexCandidate := 0 to NumInterestingCand-1 by 1
    17.     get_bar_code_object (ScanlinesAll, BarCodeHandle, IndexCandidate, 'scanlines_all')
    18.     get_bar_code_object (ScanlinesValid, BarCodeHandle, IndexCandidate, 'scanlines_valid')
    19. endfor
    复制代码
    QQ截图20170216171950.png
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情
    害羞
    2018-4-16 11:21
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    3

    主题

    12

    帖子

    483

    积分

    Rank: 2Rank: 2

    积分
    483
     楼主| 发表于 2017-2-16 23:37:10 | 显示全部楼层

    正式员工 |主题 3|帖子 12|积分 483

    RE: 金属表面的一维码该如何检测

    Tencent 发表于 2017-2-16 16:53
    你把视野缩小点或者像素提高点再试试,我这边测试也是没法读取,设置很多参数都是这样的。

    这个图片好像是黑白反向的,可能需要加一个invert_image (GrayImage, ImageInvert)来颠倒黑白标记,能否再看下有没有比较好的检测方法?麻烦了

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

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

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

  • TA的每日心情
    耍酷
    13 分钟前
  • 签到天数: 637 天

    连续签到: 1 天

    [LV.9]以坛为家II

    353

    主题

    1357

    帖子

    5265

    积分

    Rank: 9

    积分
    5265

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

    发表于 2017-2-17 10:06:24 | 显示全部楼层

    管理员 |主题 353|帖子 1357|积分 5265

    RE: 金属表面的一维码该如何检测

    tmxyz1950 发表于 2017-2-16 23:37
    这个图片好像是黑白反向的,可能需要加一个invert_image (GrayImage, ImageInvert)来颠倒黑白标记,能否再看下有没有比较好的检测方法?麻烦了

    我已经试过了反转图像了,经过测试效果是一样的。不过可以读取一些乱码符号出来,你这个是什么类型的?
    是Code 128吗?
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情
    害羞
    2018-4-16 11:21
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    3

    主题

    12

    帖子

    483

    积分

    Rank: 2Rank: 2

    积分
    483
     楼主| 发表于 2017-2-17 14:21:54 | 显示全部楼层

    正式员工 |主题 3|帖子 12|积分 483

    RE: 金属表面的一维码该如何检测

    Tencent 发表于 2017-2-17 10:06
    我已经试过了反转图像了,经过测试效果是一样的。不过可以读取一些乱码符号出来,你这个是什么类型的?
    是Code 128吗?

    是Code 128码

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

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

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

    该用户从未签到

    0

    主题

    1

    帖子

    26

    积分

    Rank: 1

    积分
    26
    发表于 2017-2-24 16:44:10 | 显示全部楼层

    试用员工 |主题 0|帖子 1|积分 26

    RE: 金属表面的一维码该如何检测

    read_image (Image144722pt4091rroz931s09, 'C:/Users/Administrator/Desktop/144722pt4091rroz931s09.jpg')
    rgb1_to_gray (Image144722pt4091rroz931s09, GrayImage)
    rotate_image (GrayImage, ImageRotate, 15, 'constant')
    invert_image (ImageRotate, ImageInvert)
    emphasize (ImageInvert, ImageEmphasize, 3, 70, 1)
    create_bar_code_model ([], [], BarCodeHandle)
    set_bar_code_param (BarCodeHandle, 'num_scanlines', 55)
    set_bar_code_param (BarCodeHandle, 'element_size_min', 1.5)
    set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 2)
    find_bar_code (ImageEmphasize, SymbolRegions, BarCodeHandle, 'Code 128', DecodedDataStrings)
    clear_bar_code_model (BarCodeHandle)


    识别结果:
    ['000003016018313991080GAN05017', '000003016018313991080GAN05017']

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

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

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

    该用户从未签到

    0

    主题

    1

    帖子

    26

    积分

    Rank: 1

    积分
    26
    发表于 2017-2-24 16:45:25 | 显示全部楼层

    试用员工 |主题 0|帖子 1|积分 26

    RE: 金属表面的一维码该如何检测

    921987108@qq.co 发表于 2017-2-24 16:44
    read_image (Image144722pt4091rroz931s09, 'C:/Users/Administrator/Desktop/144722pt4091rroz931s09.jpg' ...

    不知道识别的对不对,应该贴出条码表示的数字
    捕获.JPG

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

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

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

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

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    Halcon鸟叔机器视觉1鸟叔机器视觉 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

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

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

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

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