如何读取不清晰的条码?

来源:互联网 发布:linux打开摄像头命令 编辑:程序博客网 时间:2024/05/01 23:07

多话不说,见下图:


这是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 0
原创粉丝点击