使用ZBar来读取条形码和二维码的方法

ZBar项目简介及安装配置 2021SC@SDUSC 目录 一、ZBar项目简介 一、ZBar项目简介 1. ZBar是什么 ZBar条形码阅读器是一个开源软件,适用于读取不同来源的条形码,如视频流、图像文件和原始强度传感器。它支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128,Code 39, Codabar, Interleaved 2/5和二维码。包括在库是解码捕获的条形码图像和图像的基本应用程序,使用视频设备(如网络摄像头)作为条形码扫描仪。对于开发者,支持语言绑定包括C... 阅读详情

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html


2.新建一个项目。

3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项

4.在项目文件的target中加入 以下framework

5.在appDelegate文件中加入 标记部分的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    
    
    // force view class to load so it may be referenced directly from NIB
    [ZBarReaderView class];
    
    
    return YES;
}

注意此代码:

   // force view class to load so it may be referenced directly from NIB
    [ZBarReaderView class];


6.在.h文件中加入   ZBarReaderViewDelegate的实现,代码如下:
//
//  ViewController.h
//  FootSafety
//
//  Created by 泽宇 徐 on 12-6-12.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "ZBarSDK.h"

@interface ViewController : UIViewController<ZBarReaderViewDelegate>
{
    IBOutlet UILabel  * label ;
    ZBarReaderView *readerView;
    ZBarCameraSimulator *cameraSim;
}

@property(nonatomic,retain) UILabel * label ;
@property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;


@end

7.在.m文件中要实现的主要方法是:

- (void) readerView: (ZBarReaderView*) view
     didReadSymbols: (ZBarSymbolSet*) syms
          fromImage: (UIImage*) img
{
    // do something useful with results
    for(ZBarSymbol *sym in syms) {
        self.label.text = sym.data;
        break;
    }
}

这里是功能是读取照片信息,把条码放如label显示


-(void) viewDidAppear:(BOOL)animated
{
    // run the reader when the view is visible
    [readerView start];
}

这个是在显示视图的时候,启动摄像头,开始扫描


- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    // the delegate receives decode results
    readerView.readerDelegate = self;
    
    // you can use this to support the simulator
    if(TARGET_IPHONE_SIMULATOR) {
        cameraSim = [[ZBarCameraSimulator alloc]
                     initWithViewController: self];
        cameraSim.readerView = readerView;
    }

}

在初始化的时候,设置托管。


.m文件所有内容是:

//
//  ViewController.m
//  FootSafety
//
//  Created by 泽宇 徐 on 12-6-12.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize label;
@synthesize readerView;

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    // the delegate receives decode results
    readerView.readerDelegate = self;
    
    // you can use this to support the simulator
    if(TARGET_IPHONE_SIMULATOR) {
        cameraSim = [[ZBarCameraSimulator alloc]
                     initWithViewController: self];
        cameraSim.readerView = readerView;
    }

}

-(void) viewDidAppear:(BOOL)animated
{
    // run the reader when the view is visible
    [readerView start];
}


- (void) readerView: (ZBarReaderView*) view
     didReadSymbols: (ZBarSymbolSet*) syms
          fromImage: (UIImage*) img
{
    // do something useful with results
    for(ZBarSymbol *sym in syms) {
        self.label.text = sym.data;
        break;
    }
}



- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

-(void) dealloc
{
    [self.readerView release];
    [self.label release];
    [super dealloc];
}

@end

在ViewController.xib文件中 增加一个view,并且修改view的类是ZBarReaderView ,并且指向 .h文件中定义的 
ZBarReaderView *readerView;



介绍一下这个库zbar 支持多种条形码格式 :ZBar 支持包括 QR 码、EAN-13、UPC-A、EAN-8、Code 128、Code 39 等常见的条形码格式。2. libzbar :一个用于开发的库,提供了扫描和解码条形码的功能。- 高效的解码 :ZBar 具有高效的解码算法,能够快速识别条形码。- **库存管理**:通过扫描条形码快速识别和管理库存物品。- **物流管理**:包裹和货物的条形码扫描与追踪。- **支付系统**:扫码支付和条形码支付系统。- **票务系统**:电子票的扫码验证。 阅读详情

相关推荐

C# ZBar解码经验分享及常见问题解答

而ZBar作为一个开源的条形码和二维码解码库,提供了丰富的功能和易于使用的接口,广受开发者的青睐。在解码过程中,如果出现结果不准确或缺失的情况,可能是由于图像质量不佳、码的损坏或误差容忍度较低等原因造成的。ZBar是一个跨平台的条形码和二维码解码库,它提供了许多编程语言的接口,包括C/C++、Python和Java等。ZBar是一款功能强大的解码库,但当处理大型图像或多个码时可能会导致解码速度较慢。如果遇到无法解码的情况,可以尝试使用其他解码库或将图像传递给云端的解码服务进行处理。在解码后,可以通过遍历。

ByteLegend的博客 745

使用zbar库识别条形码与二维码

QR 码是一种高密度矩阵条码,Quirc是一个基于C/C++的一个二维码库 ,从图像中提取和解码QR 码。其部分功能还需依赖OpenCV库共同实现,比如quirc-demo-opencv(即图形的显示);inspect-opencv(测试)。1.足够快,可以用于实时视频:在现代x86内核上,从VGA帧提取和解码大约需要50毫秒。2.具有鲁棒且宽容的识别算法。可以正确识别和解码旋转和/或倾斜于相机的QR码。它还可以区分和解码同一图像中的多个代码。

m0_74259636的博客 7854

RK3576开发板ROS2部署实战:从Buildroot配置到Hello World Demo

本文详细介绍了在RK3576开发板上部署ROS2的完整实战流程。从Buildroot工程配置、集成ROS2依赖,到搭建Docker交叉编译环境、处理编译难题,最终完成系统镜像打包并在板端成功运行Talker-Listener Demo。该指南旨在帮助开发者深入理解嵌入式机器人系统的构建链,实现从底层到应用的完全掌控。

mac99的博客 1157

Zbar的安装及环境配置(环境:VS2022、64位Win10、OpenCV3.6.0)

本教程是针对Zbar的安装及环境配置(安装时使用的环境与软件:VS2022、64位Win10、OpenCV3.6.0)

weixin_44913824的博客 5427

用C#完成最小二乘法拟合平面方程,再计算点到面的距离

【代码】用C#完成最小二乘法拟合平面方程,再计算点到面的距离。

MechMaster 649

Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航

Docker中安装Ubun22以及ROS,gazebo可视化等

lovebc的博客 1678

【转】使用ZBar来读取条形码和二维码的方法

1.使用ZBar项目。下载地址是:http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项 4.在项目文件的target中加入 以下framework 5.在appDelegate文件中加入 标记部分的代码 [cpp] –(BOOL)appl...

糖果先生的博客 357

Workbench中基于nCode的列车转向架随机振动疲劳寿命预测方法

本文详细介绍了在ANSYS Workbench中结合nCode进行列车转向架随机振动疲劳寿命预测的完整方法。通过几何清理、模态分析、PSD载荷定义及随机振动求解,并重点阐述了nCode中Dirlik等疲劳算法的选择与应用,为轨道交通关键部件的可靠性设计提供了系统的仿真分析流程与工程实践指导。

weixin_29234423的博客 473

条形码,二维码 精确识别

首先看看识别的效果: 1.下载安装 ImageMagick zBar 2.新建头文件 barcode.h #include <iostream> #include <string> //引入头文件 #include ".\ZBar\include\zbar.h" #include ".\ImageMagick\inc...

weixin_30307921的博客 345

从Unitree B2W到四足机器人:用Isaac Lab构建强化学习奖励函数的5个实战技巧

本文分享了在Isaac Lab仿真环境中,为Unitree B2W等四足机器人设计强化学习奖励函数的5个核心实战技巧。内容涵盖奖励函数的结构化组合、轮腿混合机器人的适配策略、课程学习的动态调整、域随机化增强鲁棒性以及高效的调试可视化方法,旨在帮助开发者构建更稳定、高效的机器人运动策略。

lg888的博客 1066

SAP 分期付款,付款条件的要件定义方法

以上内容做好后,可以在F-02或者F-60里看设置后的结果。找到相关路径选择【维护支付条件】点击进入后,选择【新条目】再设置一个总的支付规则,注意这里【付款条款】一定要选择。例:默认付款条件SP00,改成刚定义好的0028即可。将刚才基础创建的付款条件,以以下方式录入,注意。028A- 30天到期,过账日期基础。028B- 60天到期,过账日期基础。028C- 90天到期,过账日期基础。目的:新建支付条款(本次以。的选择,然后保存后,完成。,【基准日期缺省值】选择。基础创建好了以后,选择【

晴天的博客分享技术知识 2936

Opencv识别/定位QRcode(二维码)

小项目

skyfly1206 1189

STC8H DMA 串口1全双工中断方式收发通讯C语言

串口1全双工中断方式收发通讯程序。 通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间. 当DMA空间存满设置大小的内容后,通过串口1的DMA自动发送功能把存储空间的数据原样返回. 用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。

czhaii的专栏 1467

pyzbar完全指南:如何在Python中快速读取一维条形码与二维码

pyzbar是一个强大的Python库,能够帮助开发者快速读取一维条形码与二维码。无论是在商业应用还是个人项目中,pyzbar都能提供高效准确的条码识别功能,让你轻松实现条码扫描相关需求。 ## 为什么选择pyzbar? pyzbar作为一款优秀的条码识别工具,具有以下显著优势: - **简单易用**:提供简洁的API接口,只需几行代码即可实现条码识别功能 - **高效准确**:基于zbar

gitblog_00446的博客 1051

海德汉机床采集数据

海德汉数控系统我一般在高端机床上见得比较多。有好多五轴加工精度比较高的机床都用的是海德汉的系统。市面上常见的有530和640等型号。海德汉的采集还是有点难度的,需要对SDK有深度的了解。

若云流风的专栏 1530

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[OpenCV实战]11 基于OpenCV的二维码扫描器

目录 1 二维码(QRCode)扫描 2 结果 3 参考 在这篇文章中,我们将看到如何使用OpenCV扫描二维码。您将需要OpenCV3.4.4或4.0.0及更高版本来运行代码。 1 二维码(QRCode)扫描 在OpenCV中扫描二维码很简单。我们首先读取图像。然后,我们实例化QRCodeDetector对象并使用detectAndDecode方法来查找QR码的数据和位置。最后,我们...

You and Me 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: ios 开发 iphone和ipad程序中使用google地图的方法
下一篇: ios开发中 应用设置的简单开发 (Settings.bundle)
remote_roamer
博客等级 码龄25年 441粉丝 295原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值