当前位置: 首页 > news >正文

vs2022下配置zxing cpp环境

生成zxing

下载zxing,zxing-cpp-master
https://github.com/zxing-cpp/zxing-cpp

Cmake生成项目,点Generate,把OpenCV_DIR修改了,NameValue没有报红就点Generate。然后点Open Project打开项目。
在这里插入图片描述
打开项目后,右击解决方案属性页,勾选后再生成解决方案。
在这里插入图片描述
在这里插入图片描述
全部生成成功后,新建一个文件夹zxing-cpp,下面有include和lib文件夹,include下再放个zxing文件夹。
在这里插入图片描述
在这里插入图片描述

复制D:/zxing-cpp-master-build/core/Debug/ZXing.lib到D:\zxing-cpp\lib文件夹下。
复制D:\zxing-cpp-master\core\src下的所有文件到D:\zxing-cpp\include\zxing文件夹下。

配置项目

新建一个项目,配置属性页
C++ ->常规-> 附加包含目录 D:\zxing-cpp\include
链接器 ->常规 -> 附加库目录 D:\zxing-cpp\lib
链接器 ->输入-> 附加依赖项 ZXing.lib
复制D:\zxing-cpp-master-build\core\Debug\ZXing.dll到 自己项目的Debug目录下( …\TestZxing\x64\Debug)。

测试代码

已有opencv、zxing的环境下:

#include <opencv2/opencv.hpp>
#include <zxing/ReadBarcode.h>using namespace ZXing;
using namespace cv;
struct decodeResStruct {Point pt1, pt2, pt3, pt4;String strQRDecode;decodeResStruct() {}decodeResStruct(Point pt1_, Point pt2_, Point pt3_, Point pt4_, String strQRDecode_) {pt1 = pt1_;pt2 = pt2_;pt3 = pt3_;pt4 = pt4_;strQRDecode = strQRDecode_;}
};std::vector<decodeResStruct> resDecoded;//结果集int main() {Mat src = imread("D:/test.bmp");auto fmt = ImageFormat::None;switch (src.channels()) {case 1: fmt = ImageFormat::Lum; break;case 3: fmt = ImageFormat::BGR; break;case 4: fmt = ImageFormat::BGRX; break;}ZXing::DecodeHints hints;ZXing::BarcodeFormats format = BarcodeFormat::QRCode;hints.setFormats(format);ImageView image{ src.data, src.cols, src.rows, fmt};ZXing::Results z_results = ReadBarcodes(image, hints);for (auto&& result : z_results) {const ZXing::Position pos = result.position();Point pt1 = { (int)pos[0].x,(int)pos[0].y };Point pt2 = { (int)pos[1].x,(int)pos[1].y };Point pt3 = { (int)pos[2].x,(int)pos[2].y };Point pt4 = { (int)pos[3].x,(int)pos[3].y };decodeResStruct stru = decodeResStruct{ pt1, pt2, pt3, pt4, result.text()};resDecoded.push_back(stru);}for (auto one : resDecoded) {line(src, one.pt1, one.pt2, Scalar(0, 255, 0), 2);line(src, one.pt2, one.pt3, Scalar(0, 255, 0), 2);line(src, one.pt3, one.pt4, Scalar(0, 255, 0), 2);line(src, one.pt4, one.pt1, Scalar(0, 255, 0), 2);putText(src, one.strQRDecode, one.pt1, 0, 0.5, Scalar(255, 0, 0), 2);}imshow("res", src);waitKey();
}

相关文章:

vs2022下配置zxing cpp环境

生成zxing 下载zxing&#xff0c;zxing-cpp-master https://github.com/zxing-cpp/zxing-cpp Cmake生成项目&#xff0c;点Generate&#xff0c;把OpenCV_DIR修改了&#xff0c;NameValue没有报红就点Generate。然后点Open Project打开项目。 打开项目后&#xff0c;右击解决…...

【linux】linux入门级别指令

一些基础指令 前言用户登录新建用户 ls指令pwd命令cd 指令which指令alias指令touch指令mkdir指令rmdir指令 && rm 指令rmdirrm man指令cp指令mv指令catmoreless指令head 指令tail指令输出重定向时间相关的指令cal指令find指令grep指令zip/unzip指令tar指令bc指令uname指…...

Android 开发之核心技术点——性能优化篇(带面试题)~

性能优化对于Android开发的重要性非常大。随着Android设备的不断升级&#xff0c;用户对应用的要求也越来越高&#xff0c;包括应用的运行速度、响应速度、流畅度等方面。如果应用的性能不能满足用户的需求&#xff0c;很可能会导致用户流失、差评以及应用被卸载等情况。 另外…...

typescript全局安装卸载以及npm相关问题

全局安装 npm install -g typescript 全局安装之后&#xff0c;如果想要卸载要使用 npm uninstall -g typescript 全局安装之后可以在终端使用 tsc xxx 编译ts文件 本地安装&#xff0c;也就是在项目目录下安装 npm install typescript 本地卸载 npm uninstall type…...

一条SQL如何被MySQL架构中的各个组件操作执行的?

文章目录 1. 单表查询SQL在MySQL架构中的各个组件的执行过程2. SELECT的各个关键字在哪里执行&#xff1f;3. 表关联查询SQL在MySQL架构中的各个组件的执行过程4. LEFT JOIN将过滤条件放在子查询中再关联和放在WHERE子句上有什么区别&#xff1f;5. 聚集索引和全表扫描有什么区…...

Go语言面试题--进阶语法(30)

文章目录 1.下面的代码能否正确输出&#xff1f;2.下面代码输出什么&#xff1f;3.下面的代码有什么问题&#xff1f;4.下面代码有什么不规范的地方吗&#xff1f; 1.下面的代码能否正确输出&#xff1f; func main() {var fn1 func() {}var fn2 func() {}if fn1 ! fn2 {pri…...

JavaScript概述四(DOM文档对象模型)

1.DOM(Document Object Model) 会把网页里面的元素当成对象去操作,包含对象的属性,属性值,方便我们去 操作网页。 整个页面最终会形成一个对象 :document ,页面里面的所有的元素(如 标签 ) 最终都会转换成 js 里面的对象。 1.1 获取页面的元素&#xff08;通过选择器&#xff0…...

【玩转client-go】如何获取 Kubernetes API 客户端的 *rest.Config 对象

目录 1. 使用 kubeconfig 文件 2. 使用 Kubernetes 集群内的 Service Account 3. 直接指定 API Server 的地址和认证信息 4. 使用 genericclioptions.NewConfigFlags() 总结 在使用 Kubernetes API 客户端——client-go 的过程中&#xff0c;我们通常需要获取 *rest.Config 配…...

保护模式段描述符

目前为止&#xff0c;内存还是分段模式&#xff0c;所以想要保护内存&#xff0c;就需要保存段。由于CPU的扩展导致了32位的段基地址和段内偏移&#xff0c;所以16位的段寄存器就无法放下这些信息。现在就需要把这些信息放到内存中&#xff0c;这些信息被封装成特定的段描述符。…...

两个数组的交集

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 思路&#xff1a; 由于这道题目&#xff0c;输出结果中的每个元素一定是唯一的&#xff0c;也就是说输出的结果的去重的&#xff0c; 同时可…...

原创文章生成器在线版-ai写作生成器

随着人工智能技术的迅猛发展&#xff0c;越来越多的人开始意识到&#xff0c;利用AI可以实现许多以前不可能想象的事情。其中&#xff0c;一种最能体现人工智能技术优势的应用就是“ai原创文章生成器”。它可以为营销从业者提供一种全新的营销推广方式。 那么&#xff0c;什么是…...

打造高性能CSS的九个技巧我是这么做的

在Web开发中&#xff0c;CSS是不可或缺的一部分。但是&#xff0c;如果CSS代码不够优化&#xff0c;会导致页面加载速度变慢&#xff0c;用户体验下降。以下是九个技巧&#xff0c;用于打造高性能的CSS代码。 避免使用通配符选择器&#xff1a;通配符选择器会匹配页面中的所有…...

python tqdm教程

文章目录 1. 搭配迭代器使用2. 设置动态数据打印3. 中途打印不干扰进度条4. 在jupyter中打印不干扰进度条5. 使用gui显示进度条6. 双循环嵌套进度条7. enumerate和tqdm搭配使用参考文献tqdm是python中打印进度条的一个简易工具包,可以方便查看循环的进度。具体见tqdm文档 1. …...

深度学习 - 41.Word2vec、EGES 负采样实现 By Keras

目录 一.引言 二.实现思路 1.样本构建 2.Word2vec 架构 3.EGES 架构 4.基于 NEG 的 Word2vec 架构 三.Keras 实现 Word2vec 1.样本构建 2.模型构建 3.向量获取 四.keras 实现 EGES 1.样本构建 2.模型构建 3.Dot Layer 详解 3.1 init 方法 3.2 call 方法 3.3 完…...

研发管理风险控制

软件研发过程中需要做好风险控制&#xff0c;保证项目按计划发布&#xff0c;下面说明一下个人对软件风险控制的看法 一、规划、技术选型、架构方面提前规避风险 1.选择最熟悉、使用最多的技术 “一个新项目里最好不要使用超过30%的新技术”&#xff0c;我觉得这句话是有一定…...

母婴品牌内容输出怎么做?“四板斧”送你

新媒体时代&#xff0c;信息大爆炸&#xff0c;人们的注意力有限&#xff0c;有噱头和亮点的内容才能博得注意&#xff0c;成为用户关注的焦点。 母婴行业重视品牌效益和产品的质量&#xff0c;毕竟类似“三聚氰胺”的惨剧谁也不希望再发生。母婴产品的质量依赖技术和生产线支…...

【视频】视频存储技术

1、NVR NVR是(网络硬盘录像机)的缩写。NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流, 并进行存储、管理,从而实现网络化带来的分布式架构优势。简单来说,通过NVR,可以同时观看、浏览、回放、管理、存储多个网络摄像机。NVR是x86架构储存+监控软…...

【C/C++】MySQL 为什么选择 B+ 树作为底层数据结构

为什么MySQL底层数据结构选择B树&#xff1f;&#xff08;而不是B树等其他数据结构&#xff09; B树非叶子节点&#xff0c;不存放数据记录&#xff0c;仅存放指针与关键字&#xff0c;所以一个B树非叶子节点可以存放更多子节点信息&#xff0c;有利于降低树高度&#xff0c;从…...

17、嵌入式Servlet容器

文章目录 1、切换嵌入式Servlet容器1.1、默认支持的webServer1.2、切换服务器 2、原理2.1、ServletWebServerApplicationContext2.2、作用2.3、ServletWebServerFactoryAutoConfiguration2.4、作用2.5、ServletWebServerFactoryConfiguration 配置类2.6、web服务器工厂作用 3、…...

倾斜摄影三维模型转换3DTILTES格式遇到的常见问题

倾斜摄影三维模型转换3DTILTES格式遇到的常见问题 将倾斜摄影三维模型从OSGB格式转换为3DTILES格式时&#xff0c;常见的问题包括&#xff1a; 1、3D Tiles生成时间较长&#xff1a;由于3D Tiles是一种高效的地理数据存储格式&#xff0c;能够支持海量的空间数据呈现和查询&am…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”&#xff1a;输入模块&#xff08;GPIO、温度、V_REFINT&#xff09;1.4.2 信号 “调度站”&#xff1a;多路开关1.4.3 信号 “加工厂”&#xff1a;ADC 转换器&#xff08;规则组 注入…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...