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

毕业设计-摄像头识别二维码

本毕业设计采用imx6ull-linux4.1.15-qt5.6开发板进行测试

相关交叉编译包和摄像头测试程序已上传:https://download.csdn.net/download/qq_42952079/88282608
将zbar和opencv下的lib库文件拷贝到开发板的lib目录下,将camera可执行文件拷贝到开发板目录下。
识别二维码时需将二维码图片左右方向镜像,再给摄像头识别,识别结果会显示到显示屏和串口上。

qrencode生成二维码图片

参考链接:https://www.omicsclass.com/article/1570forlinx@ubuntu:~$ sudo apt-get install qrencode
forlinx@ubuntu:~$ qrencode -o /home/forlinx/biyelunwen/name.png "chen"

zbar识别二维码图片

forlinx@ubuntu:~$ sudo apt-get install zbar-tools
forlinx@ubuntu:~$ zbarimg /home/forlinx/biyelunwen/name.png
QR-Code:chen
scanned 1 barcode symbols from 1 images in 0.01 seconds

测试验证

经过以上测试,我们可以使用qrencode工具来生成二维码图片,使用zbar工具解析二维码图片,但这些操作都是在ubuntu虚拟机上测试验证的,我们还需要在开发板上交叉编译zbar和opencv工具来识别二维码图片。

交叉编译zbar-0.10

参考链接:
https://blog.csdn.net/weixin_42489042/article/details/82626362
http://blog.chinaunix.net/uid-31087949-id-5781395.html
https://blog.csdn.net/KayChanGEEK/article/details/78758817?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4.pc_relevant_antiscanv2&utm_relevant_index=7
海思平台移植opencv和zbar:
https://blog.csdn.net/qq_34968572/article/details/112978917下载zbar源码zbar-0.10.tar.bz2
解压软件tar –vxjf zbar-0.10.tar.bz2
配置./configure --prefix=$PWD/output/ --enable-shared --enable-static --disable-video --without-python --without-gtk --without-qt --without-imagemagick CFLAGS="" --host=arm-linux-gnueabihf
编译 make
安装在output目录下 make install 安装完成以后会在output目录下生成bin include lib share文件夹bin存放可执行文件。为什么output/bin文件夹下没有生成可执行文件?include存放头文件(移植时需要用到的文件)lib存放库文件(移植时需要用到的文件)share存放其他文件

交叉编译opencv-3.4.1

参考链接:
https://blog.csdn.net/qq_34968572/article/details/112978917
https://blog.csdn.net/qq_44503344/article/details/107623532
https://blog.csdn.net/qq_37394634/article/details/1198365420.安装依赖库sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
1.首先安装cmake sudo apt install cmake
2.sudo apt install cmake-qt-gui
3.图形化界面配置完成后生成Makefile文件
4.编译make 
5.安装make install

test_zbar测试软件

测试程序使用到了zbar和opencv的库,所以要先配置PKG_CONFIG_PATH环境变量。export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/forlinx/biyelunwen/zbar-0.10/output/lib/pkgconfigexport PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/forlinx/biyelunwen/opencv_output/output/lib/pkgconfig
交叉编译test_zbar程序arm-linux-gnueabihf-g++ -o test_zbar test_zbar.cpp `pkg-config --libs --cflags zbar` `pkg-config --libs --cflags opencv`arm-linux-gnueabihf-g++ -o test_zbar test_zbar.cpp $(pkg-config --libs --cflags zbar) $(pkg-config --libs --cflags opencv)

在这里插入图片描述

错误:在pkg-config搜索路径下找不到zbar包,你可以在PKG_CONFIG_PATH环境变量中添加包含zbar.pc的路径。export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/forlinx/biyelunwen/zbar-0.10/output/lib/pkgconfigexport PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/forlinx/biyelunwen/opencv_output/output/lib/pkgconfig
正常编译以后会生成test_zbar可执行文件。将qrencode生成的二维码拷贝到开发板/home/root目录下。
将opencv生成的lib文件,zbar生成的lib文件拷贝到开发板/lib目录下。
将test_zbar可执行文件拷贝到开发板/home/root目录下。
运行可执行文件./test_zbar name.png
得到如下结果:

请添加图片描述

QT摄像头测试例程

相关交叉编译包和摄像头测试程序已上传:https://download.csdn.net/download/qq_42952079/88282608
将zbar和opencv下的lib库文件拷贝到开发板的lib目录下,将camera可执行文件拷贝到开发板目录下。
识别二维码时需将二维码图片左右方向镜像,再给摄像头识别,识别结果会显示到显示屏和串口上。

相关文章:

毕业设计-摄像头识别二维码

本毕业设计采用imx6ull-linux4.1.15-qt5.6开发板进行测试 相关交叉编译包和摄像头测试程序已上传:https://download.csdn.net/download/qq_42952079/88282608 将zbar和opencv下的lib库文件拷贝到开发板的lib目录下,将camera可执行文件拷贝到开发板目录下…...

封装动态表单组件

技术栈&#xff1a;vue2 js webpack 需求&#xff1a; 利用数据渲染表单&#xff0c;实现代码的精简化及效率的提升。 效果图&#xff1a; 封装的组件&#xff1a; <div v-if"formConfig"><el-formv-bind"$attrs"ref"formDom":model…...

提高Python并发性能 - asyncio/aiohttp介绍

在进行大规模数据采集时&#xff0c;如何提高Python爬虫的并发性能是一个关键问题。本文将向您介绍使用asyncio和aiohttp库实现异步网络请求的方法&#xff0c;并通过具体结果和结论展示它们对于优化爬虫效率所带来的效果。 1. 什么是异步编程&#xff1f; 异步编程是一种非阻…...

网络性能的四大指标:带宽、时延、抖动、丢包

原文链接&#xff1a;https://www.eet-china.com/mp/a82420.html 怎么去描述网络性能的好坏&#xff1f; 你如果说这个网络很好&#xff0c;那里的网络有点差&#xff01;这无异于看这风景美如画,本想吟诗赠天下,怎奈自己没文化,只能卧槽浪好大。 我们得用专业的术语去描述它…...

MySQL高阶查询语句

目录 一、常用查询 1、按关键字排序 1.1 升序排序 1.2 降序排序 1.3 结合where进项条件过滤再排序 1.4 多条件排序 2、区间判断及查询不重复记录 2.1 and/or&#xff08;且/或&#xff09; 2.2 嵌套 /多条件 2.3 distinct 查询不重复记录 3、对结果进行分组 4、限…...

未来科技城携手加速科技 共建集成电路测试公共服务平台!

8月26日&#xff0c;2023未来产业发展大会在杭州未来科技城国际会议中心开幕&#xff01;会上&#xff0c;发布了未来科技城培育发展未来产业行动计划&#xff0c;启动了未来产业发展共同体&#xff0c;进行了未来产业公共服务平台签约仪式。未来科技城与加速科技签约共建集成电…...

渗透测试漏洞原理之---【失效的访问控制】

文章目录 1、失效的访问控制1.1、OWASP Top 101.1.1、A5:2017-Broken Access Control1.1.2、A01:2021 – Broken Access Control 1.2、失效的访问控制类别1.2.1、水平越权1.2.2、垂直越权 1.3、攻防案例1.3.1、Pikachu靶场 Over Permision1.3.2、DVWA越权利用失效的访问控制漏洞…...

opencv的使用(Ubuntu linux环境,AS jni,AS java)

最近要完成一个功能,就是把四个视频合成左右上下分布的一个视频。尝试很多方法,最终使用opencv来实现该功能。(通过opencv实现的视频好像没有声音。)研究的步骤,首先在Ubuntu环境测试,该功能是否实现。然后再将生成的库文件放到AS中,使用jni的方法调用,或者将源码放到A…...

ChatGPT(对话AI)汇总

ChatGPT的全称为”Conversational Generative Pre-trained Transformer”&#xff0c;是一个基于预训练的自然语言处理模型。 1.商量SenseChat&#xff08;商汤&#xff09; SenseChat (sensetime.com) 2.文心一言&#xff08;百度&#xff09; 文心一言 (baidu.com) 3.百…...

【Docker】用Dockerfile制作个人的镜像文件

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…...

前端面试基础面试题——4

1.谈谈你对 ES6 的理解 2.说说你对 promise 的了解 3.解构赋值及其原理 4.Vue常用的修饰符及使用的场景 5.vue 中 key 值的作用 6.什么是 vue 的计算属性&#xff1f; 7.watch的作用是什么 8.计算属性的缓存和方法调用的区别 9.响应式系统的基本原理 10.vue-loader …...

【08期】ArrayList常见面试题

简介 ArrayList是我们开发中非常常用的数据存储容器之一&#xff0c;其底层是数组实现的&#xff0c;我们可以在集合中存储任意类型的数据&#xff0c;ArrayList是线程不安全的&#xff0c;非常适合用于对元素进行查找&#xff0c;效率非常高。 线程安全性 对ArrayList的操作…...

Android studio之GridView使用

目录 效果图&#xff1a;![在这里插入图片描述](https://img-blog.csdnimg.cn/86e4a48a71164dec82613d58b1fbaa1c.jpeg)代码&#xff1a; 效果图&#xff1a; 代码&#xff1a; UserGridviewAdapter package com.example.gridviewpro.Adapter;import android.content.Contex…...

Ubuntu系统环境搭建(七)——Ubuntu安装MySQL8.0

ubuntu环境搭建专栏&#x1f517;点击跳转 Ubuntu系统环境搭建&#xff08;七&#xff09;——Ubuntu安装MySQL8.0 文章目录 Ubuntu系统环境搭建&#xff08;七&#xff09;——Ubuntu安装MySQL8.01、安装1.1、下载1.2、解压安装 2、配置工作2.1、基本设置2.1.1、文件夹重命名…...

Nginx详解 三:高级配置

文章目录 1. 网页的状态页2. Nginx第三方模块2.1 echo模块 3. 变量3.1 内置变量3.1.1 示例 3.2 自定义变量3.2.1 自定义访问日志3.2.2 自定义json 格式日志 3.4 Nginx压缩功能 4. HTTPS4.1 Nginx的HTTPS工作原理4.2 启用功能模块的配置过程 5、自定义图标 1. 网页的状态页 基于…...

mysql 表备份 遇到的问题 【全网最全】

目录 省流&#xff1a; 正文&#xff1a; 1、报错 2、原因 3、解决方法 方法一&#xff1a;关闭 ENFORCE_GTID_CONSISTENCY &#xff08;不推荐&#xff09;&#xff1a; 方法二&#xff08;推荐&#xff09;&#xff1a; 4、开启关闭GTID 省流&#xff1a; 不推荐如…...

11.添加侧边栏,并导入数据

修改CommonAside的代码&#xff1a; <template><div><el-menu default-active"1-4-1" class"el-menu-vertical-demo" open"handleOpen" close"handleClose":collapse"isCollapse"><!--<el-menu-it…...

ThinkPHP 通用的API格式封装

ThinkPHP 通用的API格式封装 1.创建status.php 用于设置通用的状态码返回枚举类2.将API返回格式统一封装3.重写BaseController中的__call方法4.在控制器下面新建Error控制器&#xff0c;然后添加__call方法 1.创建status.php 用于设置通用的状态码返回枚举类 <?phpreturn[…...

自己动手写数据库:实现一个小型 SQL 解释器(下)

本节我们完成 SQL 解释器的最后一部分&#xff0c;它涉及到数据的删除和更改&#xff0c;首先我们看删除语句的解析。我们先看 delete 对应的语法&#xff1a; Delete -> DELETE FROM ID (where Predicate)?从语法规则可以看出&#xff0c;delete 语句必须以关键字 DELETE…...

2023年信息安全管理与评估任务书模块一网络平台搭建与设备安全防护

全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 任务书 模块一 网络平台搭建与设备安全防护 比赛时间 本阶段比赛时长为180分钟。 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 任务1 网络平台搭建 9:00- 12:00 …...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

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…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...