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,zxing-cpp-master https://github.com/zxing-cpp/zxing-cpp Cmake生成项目,点Generate,把OpenCV_DIR修改了,NameValue没有报红就点Generate。然后点Open Project打开项目。 打开项目后,右击解决…...

【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设备的不断升级,用户对应用的要求也越来越高,包括应用的运行速度、响应速度、流畅度等方面。如果应用的性能不能满足用户的需求,很可能会导致用户流失、差评以及应用被卸载等情况。 另外…...

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

一条SQL如何被MySQL架构中的各个组件操作执行的?
文章目录 1. 单表查询SQL在MySQL架构中的各个组件的执行过程2. SELECT的各个关键字在哪里执行?3. 表关联查询SQL在MySQL架构中的各个组件的执行过程4. LEFT JOIN将过滤条件放在子查询中再关联和放在WHERE子句上有什么区别?5. 聚集索引和全表扫描有什么区…...
Go语言面试题--进阶语法(30)
文章目录 1.下面的代码能否正确输出?2.下面代码输出什么?3.下面的代码有什么问题?4.下面代码有什么不规范的地方吗? 1.下面的代码能否正确输出? func main() {var fn1 func() {}var fn2 func() {}if fn1 ! fn2 {pri…...

JavaScript概述四(DOM文档对象模型)
1.DOM(Document Object Model) 会把网页里面的元素当成对象去操作,包含对象的属性,属性值,方便我们去 操作网页。 整个页面最终会形成一个对象 :document ,页面里面的所有的元素(如 标签 ) 最终都会转换成 js 里面的对象。 1.1 获取页面的元素(通过选择器࿰…...
【玩转client-go】如何获取 Kubernetes API 客户端的 *rest.Config 对象
目录 1. 使用 kubeconfig 文件 2. 使用 Kubernetes 集群内的 Service Account 3. 直接指定 API Server 的地址和认证信息 4. 使用 genericclioptions.NewConfigFlags() 总结 在使用 Kubernetes API 客户端——client-go 的过程中,我们通常需要获取 *rest.Config 配…...

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

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

原创文章生成器在线版-ai写作生成器
随着人工智能技术的迅猛发展,越来越多的人开始意识到,利用AI可以实现许多以前不可能想象的事情。其中,一种最能体现人工智能技术优势的应用就是“ai原创文章生成器”。它可以为营销从业者提供一种全新的营销推广方式。 那么,什么是…...
打造高性能CSS的九个技巧我是这么做的
在Web开发中,CSS是不可或缺的一部分。但是,如果CSS代码不够优化,会导致页面加载速度变慢,用户体验下降。以下是九个技巧,用于打造高性能的CSS代码。 避免使用通配符选择器:通配符选择器会匹配页面中的所有…...
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 完…...
研发管理风险控制
软件研发过程中需要做好风险控制,保证项目按计划发布,下面说明一下个人对软件风险控制的看法 一、规划、技术选型、架构方面提前规避风险 1.选择最熟悉、使用最多的技术 “一个新项目里最好不要使用超过30%的新技术”,我觉得这句话是有一定…...

母婴品牌内容输出怎么做?“四板斧”送你
新媒体时代,信息大爆炸,人们的注意力有限,有噱头和亮点的内容才能博得注意,成为用户关注的焦点。 母婴行业重视品牌效益和产品的质量,毕竟类似“三聚氰胺”的惨剧谁也不希望再发生。母婴产品的质量依赖技术和生产线支…...
【视频】视频存储技术
1、NVR NVR是(网络硬盘录像机)的缩写。NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流, 并进行存储、管理,从而实现网络化带来的分布式架构优势。简单来说,通过NVR,可以同时观看、浏览、回放、管理、存储多个网络摄像机。NVR是x86架构储存+监控软…...
【C/C++】MySQL 为什么选择 B+ 树作为底层数据结构
为什么MySQL底层数据结构选择B树?(而不是B树等其他数据结构) B树非叶子节点,不存放数据记录,仅存放指针与关键字,所以一个B树非叶子节点可以存放更多子节点信息,有利于降低树高度,从…...

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格式时,常见的问题包括: 1、3D Tiles生成时间较长:由于3D Tiles是一种高效的地理数据存储格式,能够支持海量的空间数据呈现和查询&am…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...