如何读取不清晰的条码?

多话不说,见下图:


这是Halcon示例程序中有的图,一般正常情况下,是读不出来的。碰到这样的图怎么办?

解决办法:
1、通过像素直方图提取其黑色条区域
2、生成一幅新图

3、将提取黑色条区域重新生成一幅图。

4、读取条码值就可以实现。

原代码如下:

dev_close_window ()
read_image (Image, 'barcode/ean13/ean13_to_preprocess_04')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)


threshold (Image, Regions, 2, 7)
connection(Regions, ConnectedRegions)
shape_trans(ConnectedRegions, RegionTrans,'rectangle1')
select_shape (RegionTrans, SelectedRegions, 'area', 'and', 510.7, 5000)
gen_image_proto(Image, ImageCleared, 255)


paint_region(SelectedRegions, ImageCleared, ImageResult, 0, 'fill')
create_bar_code_model([], [], BarCodeHandle)
find_bar_code(ImageResult, SymbolRegions, BarCodeHandle, 'EAN-13', DecodedDataStrings)
disp_message(WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'true')
clear_bar_code_model(BarCodeHandle)





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值