IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ZBar项目简介及安装配置 -> 正文阅读

[人工智能]ZBar项目简介及安装配置

2021SC@SDUSC

目录

一、ZBar项目简介

1. ZBar是什么

2. ZBar的工作原理

3. ZBar的工作流程

二、ZBar的安装和配置(Windows操作系统 ?? VS2019+opencv)


一、ZBar项目简介

1. ZBar是什么

??????ZBar条形码阅读器是一个开源软件,适用于读取不同来源的条形码,如视频流、图像文件和原始强度传感器。它支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128,Code 39, Codabar, Interleaved 2/5和二维码。包括在库是解码捕获的条形码图像和图像的基本应用程序,使用视频设备(如网络摄像头)作为条形码扫描仪。对于开发者,支持语言绑定包括C、C++、Python和Perl,以及用于Qt、GTK和PyGTK的GUI小部件。

????????该项目旨在创建一个高性能、稳定、健壮的库组件,并提供支持基础设施,使其易于在各种应用程序中使用。

2. ZBar的工作原理

????????条形码“图像扫描仪”的常见设计是将数字图像处理技术应用于包含条形码的图像:精确的细节各不相同,但这通常涉及几个过滤步骤,以清除噪声、锐化和增强对比度、边缘检测和形状分析,以确定符号位置和方向,最后从原始图像中提取数据。所有这些处理阶段都需要CPU周期和内存资源,并且通常对各种“过滤器参数”配置非常敏感,最终用户很难理解和设置这些配置。

????????ZBar库使用了一种更接近“魔杖”和“激光”扫描仪使用的方法:线性(1D)条形码设计为通过一个简单的光传感器在符号的明暗区域进行解码。利用这一点,ZBar实现对图像进行线性扫描,将每个像素视为单个光传感器的样本。数据在飞行中被扫描、解码和组装。

ZBar借鉴了现代处理范式,进一步将这一思想抽象为一个分层流模型。处理分为独立的层,具有定义良好的接口,可以一起使用,也可以单独插入任何其他系统。

3. ZBar的工作流程

二、ZBar的安装和配置(Windows操作系统 ?? VS2019+opencv)

1.单击右侧属性管理器,右键debug|x64,添加新项目属性表,名字随意。

2.安装opencv和zbar

Releases - OpenCVhttps://opencv.org/releases/

opencv选择3.4.3?

ZBar bar code reader - Downloadhttp://zbar.sourceforge.net/download.html

ZBar选择windows版本

下载完成后运行.exe文件进行安装

3.ZBar是在win32环境下的,要用x64的,还需要一些库文件,github下载

GitHub - dani4/ZBarWin64: Clone of the zbar library. Created to compile as x64 library under VS2013Clone of the zbar library. Created to compile as x64 library under VS2013 - GitHub - dani4/ZBarWin64: Clone of the zbar library. Created to compile as x64 library under VS2013https://github.com/dani4/ZBarWin64

下载并解压,将 ZBarWin64-master\lib 文件夹下 libzbar64-0.lib 文件复制到ZBar安装路径下的 lib 文件夹;将 ZBarWin64-master\lib 文件夹下 libzbar64-0.dll 文件复制到ZBar安装路径下的 bin 文件夹;将ZBarWin64-master\zbar\libiconv\dll_x64文件夹下 libiconv.dll 复制到ZBar安装路径下的bin 文件夹。

4.回到刚刚新建的opencvPropertySheet属性表的属性页界面

第一个 VC++目录--包含目录,添加opencv的include路径和zbar的include路径;

第二个 VC++目录--库目录,添加opencv和zbar的lib路径;

第三个 链接器--输入-附加依赖项,添加opencv和zbar的依赖:opencv_world340d.lib、libzbar-0.lib、libzbar64-0.lib。

5.配置环境变量

新建opencv和zbar的bin路径

6.重启电脑,打开vs项目,测试如下代码

#include <opencv2/imgproc.hpp> // Gaussian Blur
#include <opencv2/core.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp> // OpenCV window I/O
#include <opencv2/features2d.hpp>
#include <opencv2/objdetect.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <zbar.h>
using namespace cv;
using namespace std;
using namespace zbar;

int main()
{
	ImageScanner scanner;
	scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
	//调用系统摄像头
	VideoCapture cap(0);
	Mat mFrame;
	while (1)
	{
		cap >> mFrame;
		Mat image = mFrame;
		imshow("camera", mFrame);
		Mat imageGray;
		cvtColor(image, imageGray, COLOR_BGR2GRAY);
		int width = imageGray.cols;
		int height = imageGray.rows;
		uchar* raw = (uchar*)imageGray.data;
		// 在Zbar中进行扫描时候,
		//需要将OpenCV中的Mat类型转换为(uchar *)类型,raw中存放的是图像的地址;
		//对应的图像需要转成Zbar中对应的图像zbar::Image
		Image imageZbar(width, height, "Y800", raw, width * height);
		//Y800=GREY 是GRAY灰度图像
		scanner.scan(imageZbar);
		Image::SymbolIterator symbol = imageZbar.symbol_begin();
		for (; symbol != imageZbar.symbol_end(); ++symbol)
		{
			cout << "类型:" << endl << symbol->get_type_name() << endl << endl;
			cout << "条码:" << endl << symbol->get_data() << endl << endl;
		}
		waitKey(5);
		//waitKey()函数的功能是不断刷新图像,频率为delay,单位是ms
	}
	waitKey();
	return 0;
}

?这段代码,调用了zbar库和opencv库,输出为码的类型和扫码结果:

三、组内分工

本人将负责恢复码字后的规整图像的读取和解析部分的代码分析。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:15:46  更:2021-09-29 10:15:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 17:35:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码