首页 文章 精选 留言 我的

精选列表

搜索[z],共7185篇文章
优秀的个人博客,低调大师

手把手教你实现pynq-z2条形码识别

我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索和SOC设计。 关注公众号【集成电路设计教程】,拉你进“IC设计交流群”。 1.前言 单单实现一个二维码识别就花了将近一个星期,这篇文章我就详细介绍这段时间走过的坑,代码附在文末,着急需要的小伙伴直接翻到最后即可 2. linux配置 要想实现本项目,首先解决以下三大要点,也着实浪费了很多时间 2.1解决pynq联网 pynq联网的教程网上可谓是不少,但是我却整了很久。 首先是在家里,我采用 所示的方法,然后成功ping通外网 在学校时这个方法却解决不了,我尝试了网上很多方法都无法解决(可能我太菜了),最终在重新烧录了几次镜像后发现:直接把网线连到宿舍的路由器上就连上外网了... 具体还有关于修改下载源变为镜像源的方法可以参考其他博客 2.2解决pyzbar库下载 这个库下载推荐采用 pip3 install pyzbar 这个库安装的路径也要注意,命令行下输入 pip3 show pyzbar 我的在这里: <center>图 2.2.1. pyzbar的位置 </center> 多说一句,下面的zbar包我采用 sudo apt-get install python-zbar 得到,为什么不用pip3,因为pip3下载这个总是报错,即使是 pip3 upgrade 也不行,不是pip3版本的问题。 我的linux镜像是v2.3版本的,不知道大家采用v2.5或者更高会不会好些 <center>图 2.2.2. zbar的位置 </center> 2.3解决jupyter导入库 2.3.1 首先说明问题的由来 我发现使用 pip3 install pillow PIL在jupyter下能导入,但是却不能导入pyzbar 又发现在命令行输入 python3后,可以导入pyzbar,但不能导入zbar <center>图 2.3.1. python3导入pyzbar成功,导入zbar不成功 </center> 我在命令行输入pyhton 解释器下发现不能导入pyzbar,但可以导入zbar 这就引起了我的注意,最终我发现原来pip3来的pyzbar有单独的存储路径,apt-get同理 至于为什么python和python3不能引入相同的包 那就得 import sys sys.path 采用语句来观察,发现引用路径不一致。我想我知道了症结所在: <center>图 2.3.2. 不太通顺的解释</center> $\color{#FF3030}{红字}$不太通顺,翻译成 人话 就是: jupyter要设置为 支持引用 存储pyzbar包的路径 2.3.2 方法一: <center>修改环境变量</center> 说明,以下为引用: 文章源地址: https://blog.csdn.net/c20081052/article/details/79715132 Linux 下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户: 一:用于当前终端: 在当前终端中输入:export PATH=$PATH:<你的要加入的路径> 不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。 export NDK_ROOT=/home/jiang/soft/Android-ndk-r8e 只能在当前终端使用。 二:用于当前用户: 在用户主目录下有一个 .bashrc 隐藏文件,可以在此文件中加入 PATH 的设置如下: $ gedit ~/.bashrc 加入: export PATH=<你的要加入的路径>:$PATH 如果要加入多个路径,只要: export PATH=<你要加入的路径1>:<你要加入的路径2>: ...... :$PATH 当中每个路径要以冒号分隔。 这样每次登录都会生效 添加PYTHONPATH的方法也是这样,在.bashrc中添加 export PYTHONPATH=/home/zhao/setup/caffemaster/python:/home/zhao/setup/mypy:$PYTHONPATH 保存后在终端输入 $ source ~/.bashrc 使环境变量立即生效 三:用于所有用户: $ sudo gedit /etc/profile 加入: export PATH=<你要加入的路径>:$PATH 就可以了。 终端输入:echo $PATH 可以查看环境变量 注意,修改环境变量后,除了第一种方法立即生效外,第二第三种方法要立即生效,可以source ~/.bashrc或者注销再次登录后就可以了! 到此引用结束 2.3.3 方法二 : <center>在代码中加入语句</center> import sys sys.path sys.path.append('/home/xilinx/.local/lib/python3.6/site-packages') sys.path是查看jupyter的库查找路径,可以查看你的jupyter是否包括了你的包的路径 一般来说库导入失败都是由于这个原因——jupyter库路径 这是设置引用额外引用路径的方法: sys.path.append('') 可参考这篇文章: https://www.cnblogs.com/mandy-study/p/7735801.html 3. 提供代码 # 关键识别代码 barcodes = decode(image) def decode (image,barcodes): # loop over the detected barcodes for barcode in barcodes: # extract the bounding box location of the barcode and draw the # bounding boxr surrounding the barcode on the image (x, y, w, h) = barcode.rect cv2.rectangle(image, (x, y),(x + w,y + h), (255, 0, 0), 5) # the barcode data is a bytes object so if we want to draw it on # our output image wre need to convert it to a string first barcodeData = barcode.data.decode("utf-8") barcodeType = barcode.type # draw the barcode data and barcode type on the image text ="{} ({})". format(barcodeData,barcodeType) cv2.putText(image,text,(x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,.8, (255, 0, 0), 2) # print the barcode type and data to the terminal print("[INFO] Found {} barcode: {}".format(barcodeType,barcodeData)) plt.figure(figsize=(10,10)) plt.imshow(image) plt.show() # Decoding barcodes decode(image,barcodes) 最终结果,发现框框并不是很贴合,可能是照片照的问题。但是识别的结果完全正确 完整代码请见连接: https://download.csdn.net/download/weixin_44360347/15816188 打开是.ipynb格式。 更多技术文章和学习资料,请关注我的公众号:【集成电路设计教程】 全平台统一:【雪天鱼】

优秀的个人博客,低调大师

利用旧版Android漏洞的E-Z-2-Use攻击代码发布

利用Android操作系统WebView编程接口漏洞的攻击代码已作为一个模块加入到开源漏洞利用框架Metasploit中。漏洞影响Android 4.2之前的版本,Google在Android 4.2中修正了这个漏洞,但根据官方统计, 超过五成用户仍然使用存在漏洞的旧版本。WebView的漏洞允许攻击者在Android浏览器和其它应用中注入恶意 JavaScript代码,获得与目标程序相同的访问权限,攻击者可以开启一个shell窗口访问受害者的文件系统、照相机,地理位置数据、SD卡数据和 地址簿。漏洞还可通过不安全网络的中间人攻击触发。漏洞存在于Android系统中,而不是私有的 GMS 应用平台,只有更新系统才能修正漏洞。安全研究人员Tod Beardsley希望,攻击代码的披露能迫使供应商尽快升级系统。 文章转载自 开源中国社区 [http://www.oschina.net]

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册