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简介及安装配置流程 | 2021SC@SDUSC -> 正文阅读

[人工智能]ZBar简介及安装配置流程 | 2021SC@SDUSC

2021SC@SDUSC

目录

?Zbar简介

配置流程

环境

下载ZBer库文件

配置环境变量

VS配置

测试代码?

?总结


Zbar简介

? ? ? ?zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部分种类的一维码(条形码),比如I25,CODE39,CODE128,不过大家更关心的应该是现在很火的QR码的解码效率,随着现在生活中QR码的普及,扫码支付等行为越来越多的被人们接受,关于QR码是什么,QR码的解码流程是什么样的。本篇文章就互联网上的一个开源解码算法zbar进行简单剖析。

配置流程

环境

我的环境是VS2017+opencv4.10,

下载ZBer库文件

1.可以去官网下载,ZBar库在官网上只有32位的,而我们计算机的需要的是64位的,这就需要我们自己改一些文件配置。
2.一个博主直接帮我们配置好了

链接:https://pan.baidu.com/s/1EAgiYF5S65QpWAnFWS5CrQ 提取码:jesa

配置环境变量

1.在搜索中输入“高级系统设置”

点击“环境变量”

选择变量path,点击编辑

输入路径

VS配置

在VS2017中新建一个项目,在属性管理器中新建一个属性列表

?做如下配置

编辑,输入你所对应的路径,如

测试代码?

#include <zbar.h>
#include <opencv2\opencv.hpp>
#include <iostream>
#include <opencv2\imgproc\types_c.h>
#pragma comment(lib, "C:\\Users\\administered\\source\\repos\\ConsoleApplication11\\Debug\\libzbar64-0.lib")

int main(int argc, char*argv[])
{
	zbar::ImageScanner scanner;
	scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1);
	cv::VideoCapture capture;
	capture.open(0);  //打开摄像头
	cv::Mat image;
	cv::Mat imageGray;
	std::vector<cv::Point2f> obj_location;
	bool flag = true;

	if (!capture.isOpened())
	{
		std::cout << "cannot open cam!" << std::endl;
	}
	else
	{
		while (flag)
		{
			capture >> image;
			cv::cvtColor(image, imageGray, CV_RGB2GRAY);
			int width = imageGray.cols;
			int height = imageGray.rows;
			uchar *raw = (uchar *)imageGray.data;
			zbar::Image imageZbar(width, height, "Y800", raw, width * height);
			scanner.scan(imageZbar);  //扫描条码
			zbar::Image::SymbolIterator symbol = imageZbar.symbol_begin();
			if (imageZbar.symbol_begin() != imageZbar.symbol_end())  //如果扫描到二维码
			{
				flag = false;
				//解析二维码
				for (int i = 0; i < symbol->get_location_size(); i++)
				{
					obj_location.push_back(cv::Point(symbol->get_location_x(i), symbol->get_location_y(i)));
				}
				for (unsigned int i = 0; i < obj_location.size(); i++)
				{
					cv::line(image, obj_location[i], obj_location[(i + 1) % obj_location.size()], cv::Scalar(255, 0, 0), 3);//定位条码
				}
				for (; symbol != imageZbar.symbol_end(); ++symbol)
				{
					std::cout << "Code Type: " << std::endl << symbol->get_type_name() << std::endl; //获取条码类型
					std::cout << "Decode Result: " << std::endl << symbol->get_data() << std::endl;  //解码
				}
				imageZbar.set_data(NULL, 0);
			}
			cv::imshow("Result", image);
			cv::waitKey(50);
		}
		cv::waitKey();
	}
	return 0;
}

注意选择debug、x64

运行截图?

总结

?ZBar项目涉及知识十分丰富且复杂,本次仅仅在Windows环境下对ZBar进行了安装、配置以及简单的测试和使用,后续小组将开展详细的代码分析工作。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 11:56:30  更:2021-09-30 11:57:21 
 
开发: 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/22 6:17:50-

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