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

一、下载Zbar

官网下载链接(点击官网右侧的下载链接)

 二、安装Zbar

注意安装时一定要选择第三项“Development Headers and Libraries” 

三、下载ZBarWin64-master

因为此时下载的Zbar是只适用于32位操作系统的,所以我们需要添加一些库文件才能在64位操作系统中使用。下方为库文件下载链接:

下载链接

四、补充库文件(安装地址可能每个人都不一样,找到对应安装位置就行)

1.将C:\Users\24602\Desktop\ZBarWin64-master\lib文件夹下的libzbar64-0.lib复制到C:\Program Files (x86)\ZBar\lib文件夹中;

2.将C:\Users\24602\Desktop\ZBarWin64-master\lib文件夹下的libzbar64-0.dll复制到C:\Program Files (x86)\ZBar\bin文件夹中;

3.将C:\Users\24602\Desktop\ZBarWin64-master\zbar\libiconv\dll_x64文件夹下的libiconv.dll复制到C:\Program Files (x86)\ZBar\bin文件夹中。

五、在程序文件中补充dll文件

        如果不执行此步骤运行程序时会出现“由于找不到libzbar64-0.dll,无法继续执行代码。重新安装程序可能会解决此问题”的报错。

         此时我们将程序所依赖的dll文件复制到程序的exe文件所在的文件夹下就可以了。

1.将C:\Users\24602\Desktop\ZBarWin64-master\lib文件夹下的libzbar64-0.dll复制到D:\VS 2022 Project\条形码\x64\Debug文件夹下;

(此处我把储存程序的默认地址修改了,所以这是我自己的程序储存地址,大家找到自己储存程序文件的地址,选择程序名称底下的x64文件夹,再选择Debug文件夹就能找到exe文件了)

2.将C:\Users\24602\Desktop\ZBarWin64-master\zbar\libiconv\dll_x64文件夹下的libiconv.dll复制到D:\VS 2022 Project\条形码\x64\Debug文件夹下。

六、配置运行环境

打开程序,选择“项目(P)”,再选择“属性(P)”调出属性页界面

 

1.补充包含目录

选择属性页界面的“VC++目录”,选择右侧“包含目录”并“编辑”,添加Zbar的include文件夹路径

C:\Program Files (x86)\ZBar\include

2.补充库目录

选择属性页界面的“VC++目录”,选择右侧“包含目录”并“编辑”,添加Zbar的lib文件夹路径

C:\Program Files (x86)\ZBar\lib

3.补充附加依赖项

选择属性页界面的“链接器”,选择“输入”,选择右侧的“附加依赖项”并“编辑”,添加如下两个依赖项

(1)将C:\Program Files (x86)\ZBar\bin文件夹下的libzbar-0.lib文件添加进附加依赖项

(2)将C:\Program Files (x86)\ZBar\lib文件夹下的libzbar64-0.lib文件添加进附加依赖项

添加方式:直接把文件名称复制粘贴进附加依赖项就行

 七、配置系统环境

按下windows键,输入“查看高级系统设置”(相当于用win10自带的搜索器搜素),选择第一个搜素结果。

 

 选择“系统属性”下的“环境变量”,在“环境变量”弹窗中选择Path并“编辑”

 

 在“编辑环境变量”弹窗中点击“新建”,再点击“浏览”,选择安装Zbar路径的bin文件夹并确定。

完成后把所有弹窗都点击“确定”

八、测试代码

1.检测电脑存储的图片

2.检测摄像头实时采集的图片

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 C++ 中使用 OpenCV 来识别条形码,可以使用 ZBar 库。ZBar 是一个流行的开源条形码扫描库,可以在 Linux、Windows 和 Mac OS X 等操作系统上运行。它支持多种条码类型,包括 EAN/UPC、Code 128、Code 39、Interleaved 2 of 5 等。 以下是使用 OpenCVZBar 库来识别条形码的步骤: 1. 安装 ZBar 库:可以从官方网站(http://zbar.sourceforge.net)下载最新的 ZBar 库并进行安装。 2. 配置 OpenCV:确保已经正确配置了 OpenCV 并且可以在 C++ 中使用。 3. 在 C++ 代码中引入 ZBar 库的头文件:`#include <zbar.h>` 4. 创建一个 ZBar 扫描器:`zbar::ImageScanner scanner;` 5. 加载图像并将其转换为灰度图像:`cv::Mat image = cv::imread("barcode.jpg", cv::IMREAD_GRAYSCALE);` 6. 将图像数据传递给 ZBar 扫描器:`zbar::Image zbarImage(image.cols, image.rows, "Y800", image.data, image.cols * image.rows);` 7. 扫描图像并获取结果:`scanner.scan(zbarImage);` 8. 遍历结果并输出条码数据:`for(zbar::Image::SymbolIterator symbol = zbarImage.symbol_begin(); symbol != zbarImage.symbol_end(); ++symbol) { std::cout << "Data: " << symbol->get_data() << std::endl; }` 完整的代码示例如下: ``` #include <opencv2/opencv.hpp> #include <zbar.h> int main(int argc, char** argv) { // 创建 ZBar 扫描器 zbar::ImageScanner scanner; // 加载图像并将其转换为灰度图像 cv::Mat image = cv::imread("barcode.jpg", cv::IMREAD_GRAYSCALE); // 将图像数据传递给 ZBar 扫描器 zbar::Image zbarImage(image.cols, image.rows, "Y800", image.data, image.cols * image.rows); // 扫描图像并获取结果 scanner.scan(zbarImage); // 遍历结果并输出条码数据 for(zbar::Image::SymbolIterator symbol = zbarImage.symbol_begin(); symbol != zbarImage.symbol_end(); ++symbol) { std::cout << "Data: " << symbol->get_data() << std::endl; } return 0; } ``` 注意,这只是一个简单的示例,实际应用中可能需要添加更多的错误处理和图像预处理步骤来提高识别的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值