目录:

一.识别库

二.从一张图片中提取多个条形码

三.注意事项

一.识别库

目前主流的识别库主要有ZXing.NET和ZBar,这里我使用的是ZBar,ZXing.NET也试过,同等条件下,识别率不高。

ZBar相关类库包括:libzbar.dll,libzbar-cil.dll,libiconv-2.dll;很奇怪为什么不能直接引用libzbar.dll,实际使用时引用的是libzbar-cil.dll,libiconv-2.dll是libzbar-cil.dll用来映射libzbar.dll的。ZBar识别库包含在源码中,文末可直接下载。

二.从一张图片中提取多个条形码

先上截图:
需要提取条形码的图片:

识别结果

主要代码:

/// <summary>/// 条码识别/// </summary>private void ScanBarCode(string fileName){DateTime now = DateTime.Now;Image primaryImage = Image.FromFile(fileName);Bitmap pImg = MakeGrayscale3((Bitmap)primaryImage);using (ZBar.ImageScanner scanner = new ZBar.ImageScanner()){scanner.SetConfiguration(ZBar.SymbolType.None, ZBar.Config.Enable, 0);scanner.SetConfiguration(ZBar.SymbolType.CODE39, ZBar.Config.Enable, 1);scanner.SetConfiguration(ZBar.SymbolType.CODE128, ZBar.Config.Enable, 1);List<ZBar.Symbol> symbols = new List<ZBar.Symbol>();symbols = scanner.Scan((Image)pImg);if (symbols != null && symbols.Count > 0){string result = string.Empty;symbols.ForEach(s => result += "条码内容:" + s.Data + " 条码质量:" + s.Quality + Environment.NewLine);MessageBox.Show(result);}}}/// <summary>/// 处理图片灰度/// </summary>/// <param name="original"></param>/// <returns></returns>public static Bitmap MakeGrayscale3(Bitmap original){//create a blank bitmap the same size as originalBitmap newBitmap = new Bitmap(original.Width, original.Height);//get a graphics object from the new imageGraphics g = Graphics.FromImage(newBitmap);//create the grayscale ColorMatrixSystem.Drawing.Imaging.ColorMatrix colorMatrix = new System.Drawing.Imaging.ColorMatrix(new float[][]{new float[] {.3f, .3f, .3f, 0, 0},new float[] {.59f, .59f, .59f, 0, 0},new float[] {.11f, .11f, .11f, 0, 0},new float[] {0, 0, 0, 1, 0},new float[] {0, 0, 0, 0, 1}});//create some image attributesImageAttributes attributes = new ImageAttributes();//set the color matrix attributeattributes.SetColorMatrix(colorMatrix);//draw the original image on the new image//using the grayscale color matrixg.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height),0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);//dispose the Graphics objectg.Dispose();return newBitmap;}

三.注意事项
如果条码识别率不高,考虑是图片的DPI不够。我的项目初期使用的是500万像素的高拍仪,拍出来的图片识别率始终不高,DPI为96。后来更换为800万像素的高拍仪,DPI为120,识别率从60%直接上升到95%+。当然,也需要对图片做一些裁剪。另外,灰度处理是必须的,可减少拍摄照片时反光引起的识别率不高问题。

在C#中使用ZBar识别条形码相关推荐

  1. Opencv+ZBar识别条形码、二维码

    文章目录 Opencv识别条形码.二维码 1.ZBar环境配置 2.一维码(条形码)识别 3. 二维码的识别 4. Opencv识别二维码 结束 Opencv识别条形码.二维码 最近的一次作业,恰好之 ...

  2. c语言编程图片识别条形码,基于Zbar的条形码图像识别算法的制作方法

    本发明涉及条形码识别技术领域,特别是涉及一种基于Zbar的条形码图像识别算法. 背景技术: 条形码是将宽度不等的多个黑条和空白,按一定的编码规则排列,用以表达一组信息的图形标识符.随着科技的迅速发展, ...

  3. 基于opencv3.0和zbar下条形码和二维码的识别与解码

    其中对条码与二维码的识别分为以下4个步骤 1. 利用opencv和Zbar(或者Zxing)对标准的条形码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. 2 ...

  4. winform中实现打开摄像头+识别条形码和二维码

    我们去菜鸟驿站拿快递的时候,需要我们把自己的快递拿到扫描台上扫下,表示包裹已出库.今天我们就来实现这个功能,基于winform程序开发快递单的扫描和识别,顺便也识别下二维码.用到的组件有2个,分别是A ...

  5. Python实现条码识别:从图像中自动检测和识别条形码

    Python实现条码识别:从图像中自动检测和识别条形码 在现代零售业中,条形码是一项必不可少的技术.它们提供了一种快速.准确和可靠的方法来追踪和管理库存.随着计算机视觉技术的发展,我们可以利用Pyth ...

  6. 使用zbar识别二维码

    目录 1 说明 2 软件获取 3 在Windows下使用zbar 4 在Linux PC(Ubuntu Server 1604 64位)下使用zbar 4.1 无内存泄漏的示例代码 5 在ARM Li ...

  7. 配置zbar识别二维码(转载)

    原文地址: http://blog.csdn.net/dcrmg/article/details/52108258   二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二 ...

  8. Java 扫描识别条形码图片

    1.条形码扫描识别的实现方法及步骤 本文以Java代码示例介绍如何来扫描和识别条形码图片.这里使用免费的条码工具Free Spire.Barcode for Java,调用BarcodeScanner ...

  9. java条码识别技术_Java 生成、识别条形码

    条形码是由一定的字符,数字及符号组成,用以表达一组信息的图形标识符.它可以标出物品的商品名称.生产日期.图书分类号,邮件起止地点等.因而在商品流通.图书管理.邮政管理等许多领域得以广泛的应用.本文将通 ...

最新文章

  1. UVA - 11584 Partitioning by Palindromes(划分成回文串)(dp)
  2. linux io重定向指令,Linux基础知识之 IO重定向
  3. Python学习系列(一)(基础入门)
  4. core webapi缩略图_netcore 图片缩略图
  5. oracle dba开头的表,KU$开头的表是什么表?
  6. go json数据出现unicode_Golang处理JSON(一) 序列化
  7. (万里开源)greatdb mysql 8.0以上版本创建用户并授权远程连接
  8. CSS背景图像的简单响应
  9. 北京54坐标系和1980西安坐标系转换
  10. 几种搜索引擎算法 SEO
  11. 摄像头M-JPEG 格式分析
  12. 解题:NOI 2010 航空管制
  13. java程序员怎么创建自己的网站:第一章:总体流程,我崩溃了
  14. 第十章:Archiving
  15. php GD库的使用
  16. MySql 数据库 管理员密码忘记怎么办?
  17. 2013款Mac Pro“神秘”主机详解
  18. 算法点滴yan测试+打印
  19. 程序员不愁没练手的小项目
  20. #私藏项目实操分享#Python爬虫实战,requests+xpath模块,Python实现爬取豆瓣影评

热门文章

  1. 3dmax 视图切换
  2. 混合像元分解研究综述——线性混合像元分解算法
  3. MATLAB程序设计与应用 3.1 特殊矩阵
  4. 多模态学习、迁移学习、元学习、联邦学习、表示学习、知识图谱、无监督学习、半监督学习、弱监督学习、自监督学习简介
  5. 中登公司统计数据好像有问题,看不懂。
  6. 1117. 单词接龙
  7. VR全景展示+月子机构,多渠道流量获客
  8. 【技术】基于数据库的权限设计
  9. java实现图像对比度增强_java图片对比度调整示例代码
  10. 必示科技C轮融资近两亿元,推出新一代产品矩阵