设置首页收藏本站
开启左侧

二维码识别问题

[复制链接]
Frank_Tek 发表于 2023-8-4 09:53:42 | 显示全部楼层 |阅读模式
悬赏19视觉币
附件二维码识别率只有45%,大佬们帮忙看下识别率可否提高到100%
2023-07-22 00-09-19-09.jpeg
二维码.zip (763.25 KB, 下载次数: 28)

最佳答案

查看完整内容

除了预处理增强图像,我再提出一个可能的方向,有关于DM码的构图原理的,猜测是打印二维码的时候二维码最外边沿留白不够,导致的识别率低,我用halcon13.0处理留白也可以全部识别,留白加预处理预计效果会更好
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
暗翼小哥 发表于 2023-8-4 09:53:43 | 显示全部楼层
除了预处理增强图像,我再提出一个可能的方向,有关于DM码的构图原理的,猜测是打印二维码的时候二维码最外边沿留白不够,导致的识别率低,我用halcon13.0处理留白也可以全部识别,留白加预处理预计效果会更好
  1. list_image_files ('F:/51-i/二维码不同灰度', 'default', [], ImageFiles)
  2. dev_get_window (WindowHandle)
  3. create_data_code_2d_model ('Data Matrix ECC 200', 'default_parameters', 'maximum_recognition', DataCodeHandle)
  4. gen_rectangle1 (Rectangle, 200, 370, 410, 580)
  5. code:=[]
  6. for index:=0 to |ImageFiles|-1 by 1
  7.     read_image (Image, ImageFiles[index])
  8.     reduce_domain (Image, Rectangle, ImageReduced)
  9.     crop_domain (ImageReduced, ImagePart)
  10.     binary_threshold (ImagePart, Region, 'max_separability', 'light', UsedThreshold)
  11.     connection (Region, ConnectedRegions)
  12.     select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
  13.     shape_trans (SelectedRegions, RegionTrans, 'convex')
  14.     difference (ImagePart, RegionTrans, RegionDifference)
  15.     dilation_rectangle1 (RegionDifference, RegionDilation, 7, 7)
  16.     paint_region (RegionDilation, ImagePart, ImageResult, 228, 'fill')
  17.     find_data_code_2d (ImageResult, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
  18.     tuple_strlen (DecodedDataStrings, Length)
  19.     if(Length = 13)
  20.         code:=[code,DecodedDataStrings]
  21.     endif
  22. *     stop ()
  23. endfor
复制代码



奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

green51 发表于 2023-8-4 11:07:38 | 显示全部楼层
二维码识别,主要是对比度好了就可以很容易识别出来。
处理方法:
图像预处理一下就好了,处理好达到黑白分明就可以。
用到的算子emphasize

处理后效果

处理后效果
1.PNG 2.PNG
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

自由寰宇 发表于 2023-8-4 11:34:58 | 显示全部楼层
  1. create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
  2. set_data_code_2d_param (DataCodeHandle, 'default_parameters', 'maximum_recognition')
  3. list_files ('C:/Users/Administrator/Desktop/二维码', 'files', Files)
  4. for Index := |Files| to 1 by -1
  5. read_image (Image1231, Files[Index - 1])
  6. find_data_code_2d (Image1231, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
  7. dev_disp_text (DecodedDataStrings, 'image', 100, 100, 'black', [], [])
  8. stop ()
  9. endfor
复制代码
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

 楼主| Frank_Tek 发表于 2023-8-4 13:48:54 | 显示全部楼层
green51 发表于 2023-8-4 11:07
二维码识别,主要是对比度好了就可以很容易识别出来。
处理方法:
图像预处理一下就好了,处理好达到黑白分 ...

大佬代码可以分享一下吗
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

 楼主| Frank_Tek 发表于 2023-8-4 13:51:06 | 显示全部楼层

谢谢分享,你的版本是多少,我的17识别不出来
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

自由寰宇 发表于 2023-8-4 13:52:52 | 显示全部楼层
Frank_Tek 发表于 2023-8-4 13:51
谢谢分享,你的版本是多少,我的17识别不出来

halcon20.11
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

green51 发表于 2023-8-4 14:22:17 | 显示全部楼层
Frank_Tek 发表于 2023-8-4 13:48
大佬代码可以分享一下吗
  1. read_image (Image, ImageFiles[Index])
复制代码

可以
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

green51 发表于 2023-8-4 14:31:17 | 显示全部楼层
  1. emphasize (Image, ImageEmphasize, 7, 7, 2)
  2. highpass_image (ImageEmphasize, Highpass, 11, 11)
复制代码

加上这两句与处理就好了,其它参考楼上哪位写的一样的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

Ggg3434 发表于 2023-8-4 15:22:40 | 显示全部楼层
我这边是可以的
  1. dev_open_window (0, 0, 600, 600, 'black', WindowHandle)
  2. list_files ('D:/000872IE/Desktop/二维码/二维码', 'files', Pic)
  3. for Index := |Pic| to 1 by -1
  4.         read_image (Model,Pic[Index-1])
  5.         dev_display (Model)
  6.         threshold(Model, Region, 100, 255)
  7.         connection (Region, ConnectedRegions1)
  8.         fill_up (ConnectedRegions1, RegionFillUp)
  9.         select_shape (RegionFillUp, SelectedRegions, 'rectangularity', 'and', 0.8, 1)
  10.         select_shape (SelectedRegions, SelectedRegions2, 'area', 'and', 15000, 99999)
  11.         union1 (SelectedRegions2, RegionUnion)
  12.         reduce_domain(Model, RegionUnion, ImageReduced)
  13.         emphasize (ImageReduced, ImageEmphasize, 41, 41, 5)

  14.         create_data_code_2d_model('Data Matrix ECC 200', [], [], DataCodeHandle)
  15.         set_data_code_2d_param(DataCodeHandle, 'default_parameters', 'maximum_recognition')
  16.         find_data_code_2d(ImageEmphasize, SelectedRegions2, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
  17.         Resilt[Index-1]:=DecodedDataStrings
  18. endfor
复制代码
微信截图_20230804152127.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

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

本版积分规则

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