电表条码扫描--检测/识别
来源:互联网 发布:沪港通每日数据 编辑:程序博客网 时间:2024/04/26 20:58
1. 项目介绍
需要进行单相电表/三项电表/互感器上的条码扫描,主要为code128码;在一个集装盒内,整箱存放每类电表,其中互感器-4×4,单相表-3×4,三项表-2×2,其中高度差约为15cm;有下述两个方案可供选择。
1.1 康耐视扫码相机
每个130W康耐视扫码相机(网口,24v,多个相机使用交换机连接)可以覆盖两个单相表,所以需要两个相机并排,同时扫描,方能覆盖箱子的一行,其中有重叠,但通过联机,可以消除重复项;另外,根据项目需求,要求确定哪一个位置缺少表(无聊的要求),所以,可以每个相机直接输出识别后的条码即可,#1.1,#1.2;#2.1,#2.2。
1.2 1600W工业相机
需要覆盖整个表箱,同时达到一定的分辨率,所以采用1600w的工业相机,采集图像后,或者使用halcon或者使用opencv+zbar或者zbar进行条码扫描;
1.2.1 halcon
不加入条码检测模块(需要自己添加?),采用ROI分割法,识别固定区域的条码,此种策略过于死板,没有良好的兼容性和扩展性。若以后需要扫描的物体大小改变,那么就不易扫描了。
1.2.2 opencv+zbar
在没有接触zbar时,估计zbar只有识别功能,没有检测能力,所以想使用opencv中的cascade进行训练,从而使其具有检测能力,再同zbar结合,即可完成项目需求。然而,在分析测试了zbar后,确定其可以检测图像中所有的barcode,同时将其识别。其中的example讲解了如何使用,此链接提供了如何将opencv和zbar结合使用。opencv同zbar结合,可以使用opencv的API连接相机,采集图像(当然,zbar也可以);直接使用opencv对图像进行解码,不用再使用imagemagick,貌似更快些!
1.3 镜头选择
项目最重要的一个要求为能够自动兼容三种高度的表,从而对景深要求很高,康耐视提供了两个方案,液体变焦镜头和大尺度镜头;前者已经测试ok,但费用较高(15k+)而33mm的镜头并不能达到要求。
1.4 方案分析
虽然费用高一些,但就镜头来说,还是选择液体变焦镜头。康耐视扫码相机可以达到目的,费用估计20k×2,那么康耐视的报价60k+。不推荐halcon,同时可以将1600w相机换为两台500w或一台普通的工业相机,所以此方案的报价约为15k+10k+5K=30k,费用减少一半。相当省钱,也可以实现该功能。
2. Zbar简记
在上一篇blog中记录了在ubuntu下编译安装zbar的过程,另外在win下通过zbar的安装包可以直接调用dll进行开发,比较简单。刚刚开始阅读其中的代码,发现封装了很多东东,不能阅读,可能是为了保护? 检测的核心API
int zbar_scan_image (zbar_image_scanner_t *iscn,zbar_image_t *img)略看一下,输出检测barcode的个数。
在阅读开源代码是,先关注借口API的 *.h,可以有一个直观的认识,然后再继续阅读核心关注部分。
- 电表条码扫描--检测/识别
- Google Play服务中的条码扫描识别
- 条码扫描
- 条码识别
- 条码扫描手机软件设计
- Android条码扫描
- iOS - 二维码、条码扫描
- android条码识别详解
- Halcon MFC 条码识别
- 1D2D条码生成、检测、识别控件Barcode Xpress详细介绍
- 高速的1D和2D条码生成、检测、识别控件Barcode Xpress
- 怎么解决OCR文字识别软件中出现检测不到条码的问题
- 美国Intermec条码扫描枪
- 搞定一维条码扫描
- iphone 使用ZBar 条码扫描
- 监测条码枪扫描结束
- Android 蓝牙条码扫描输入法
- 扫描条码不能触发事件
- PHP中 htmlspecialchars,htmlentities, nl2br函数
- Android-记录ListView的位置,让ListView下次直接滚动到记录的位置
- java打印九九乘法表
- 自定义tabBarcontroller必须实现以下几个方法
- [cocos2d-x]如何自动发送菜单点击回调事件?
- 电表条码扫描--检测/识别
- 11.27系统基本配置
- mybatis-ehcache报错
- 详解Objective-C runtime
- 信道编码来达到香农容量
- storm文档(8)----配置文件说明
- 大数据处理
- php socket 如何向https协议的接口发送数据
- /sys/bus/i2c/devices下的内容与i2c_board_info结构体