親手教你實(shí)現(xiàn)pynq-z2條形碼識(shí)別功能
1. linux配置
要想實(shí)現(xiàn)本項(xiàng)目,首先解決以下三大要點(diǎn)
,也著實(shí)浪費(fèi)了很多時(shí)間
1.1解決pynq聯(lián)網(wǎng)
pynq聯(lián)網(wǎng)的教程網(wǎng)上可謂是不少,但是我卻整了很久。
首先是在家里,我采用
所示的方法,然后成功ping通外網(wǎng)
在學(xué)校時(shí)這個(gè)方法卻解決不了,我嘗試了網(wǎng)上很多方法都無法解決(可能我太菜了),最終在重新燒錄了幾次鏡像后發(fā)現(xiàn):直接把網(wǎng)線連到宿舍的路由器上就連上外網(wǎng)了...
具體還有關(guān)于修改下載源變?yōu)殓R像源的方法可以參考其他博客
1.2解決pyzbar庫下載
這個(gè)庫下載推薦采用
pip3 install pyzbar
這個(gè)庫安裝的路徑也要注意,命令行下輸入
pip3 show pyzbar
我的在這里:
圖 2.2.1. pyzbar的位置
多說一句,下面的zbar
包我采用
sudo apt-get install python-zbar
得到,為什么不用pip3,因?yàn)閜ip3下載這個(gè)總是報(bào)錯(cuò),即使是
pip3 upgrade
也不行,不是pip3版本的問題。
我的linux鏡像是v2.3
版本的,不知道大家采用v2.5
或者更高會(huì)不會(huì)好些
圖 2.2.2. zbar的位置
1.3解決jupyter導(dǎo)入庫
1.3.1 首先說明問題的由來
我發(fā)現(xiàn)使用
pip3 install pillow
PIL在jupyter下能導(dǎo)入,但是卻不能導(dǎo)入pyzbar
又發(fā)現(xiàn)在命令行輸入 python3
后,可以導(dǎo)入pyzbar,但不能導(dǎo)入zbar
圖 2.3.1. python3導(dǎo)入pyzbar成功,導(dǎo)入zbar不成功
我在命令行輸入pyhton
解釋器下發(fā)現(xiàn)不能導(dǎo)入pyzbar
,但可以導(dǎo)入zbar
這就引起了我的注意,最終我發(fā)現(xiàn)原來pip3
來的pyzbar
有單獨(dú)的存儲(chǔ)路徑,apt-get
同理
至于為什么python和python3不能引入相同的包
那就得
import sys sys.path
采用語句來觀察,發(fā)現(xiàn)引用路徑不一致。我想我知道了癥結(jié)所在:
圖 2.3.2. 不太通順的解釋
$\color{#FF3030}{紅字}$不太通順,翻譯成 人話 就是:
jupyter要設(shè)置為 支持引用 存儲(chǔ)pyzbar包的路徑
1.3.2 方法一:
修改環(huán)境變量
說明,以下為引用:
文章源地址:http://www.dbjr.com.cn/article/256333.htm
Linux 下設(shè)置環(huán)境變量有三種方法,一種用于當(dāng)前終端,一種用于當(dāng)前用戶,一種用于所有用戶:
一:用于當(dāng)前終端:
在當(dāng)前終端中輸入:export PATH=$PATH:<你的要加入的路徑>
不過上面的方法只適用于當(dāng)前終端,一旦當(dāng)前終端關(guān)閉或在另一個(gè)終端中,則無效。
export NDK_ROOT=/home/jiang/soft/Android-ndk-r8e
只能在當(dāng)前終端使用。
二:用于當(dāng)前用戶:
在用戶主目錄下有一個(gè) .bashrc 隱藏文件,可以在此文件中加入 PATH 的設(shè)置如下:
$ gedit ~/.bashrc
加入:
export PATH=<你的要加入的路徑>:$PATH
如果要加入多個(gè)路徑,只要:
export PATH=<你要加入的路徑1>:<你要加入的路徑2>: ...... :$PATH
當(dāng)中每個(gè)路徑要以冒號(hào)分隔。
這樣每次登錄都會(huì)生效
添加PYTHONPATH的方法也是這樣,在.bashrc中添加
export PYTHONPATH=/home/zhao/setup/caffemaster/python:/home/zhao/setup/mypy:$PYTHONPATH
保存后在終端輸入 $ source ~/.bashrc
使環(huán)境變量立即生效
三:用于所有用戶:
$ sudo gedit /etc/profile
加入:
export PATH=<你要加入的路徑>:$PATH
就可以了。
終端輸入:echo $PATH
可以查看環(huán)境變量
注意,修改環(huán)境變量后,除了第一種方法立即生效外,第二第三種方法要立即生效,可以source ~/.bashrc或者注銷再次登錄后就可以了!
到此引用結(jié)束
1.3.3 方法二 :
在代碼中加入語句
import sys sys.path sys.path.append('/home/xilinx/.local/lib/python3.6/site-packages')
sys.path
是查看jupyter
的庫查找路徑,可以查看你的jupyter是否包括了你的包的路徑
一般來說庫導(dǎo)入失敗都是由于這個(gè)原因——jupyter庫路徑
這是設(shè)置引用額外引用路徑的方法:
sys.path.append('')
可參考這篇文章:http://www.dbjr.com.cn/article/44107.htm
2. 提供代碼
# 關(guān)鍵識(shí)別代碼 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)
最終結(jié)果,發(fā)現(xiàn)框框并不是很貼合,可能是照片照的問題。但是識(shí)別的結(jié)果完全正確
完整代碼請(qǐng)見連接:
http://xiazai.jb51.net/202207/yuanma/QRcode_jb51.rar
打開是.ipynb格式。
到此這篇關(guān)于親手教你實(shí)現(xiàn)pynq-z2條形碼識(shí)別功能的文章就介紹到這了,更多相關(guān)pynq-z2條形碼識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python pyautogui模塊實(shí)現(xiàn)鼠標(biāo)鍵盤自動(dòng)化方法詳解
這篇文章主要介紹了Python pyautogui 模塊實(shí)現(xiàn)鼠標(biāo)鍵盤自動(dòng)化方法詳解,需要的朋友可以參考下2020-02-02python基于C/S模式實(shí)現(xiàn)聊天室功能
這篇文章主要為大家詳細(xì)介紹了python基于C/S模式實(shí)現(xiàn)聊天室功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01python如何獲取網(wǎng)絡(luò)數(shù)據(jù)
這篇文章主要介紹了python如何獲取網(wǎng)絡(luò)數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04Python3.5面向?qū)ο笈c繼承圖文實(shí)例詳解
這篇文章主要介紹了Python3.5面向?qū)ο笈c繼承,結(jié)合圖文與實(shí)例形式詳細(xì)分析了Python3.5面向?qū)ο笈c繼承的相關(guān)概念、原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2019-04-04python Pandas高級(jí)功能之?dāng)?shù)據(jù)透視表和字符串操作
Pandas是Python中用于數(shù)據(jù)處理和分析的強(qiáng)大庫,這篇文章將深入探討Pandas庫的高級(jí)功能:數(shù)據(jù)透視表和字符串操作,需要的朋友可以參考下2023-07-07深入了解Python中反射和動(dòng)態(tài)屬性的無限可能
理解 Python 中的反射和動(dòng)態(tài)屬性是編寫靈活和強(qiáng)大程序的關(guān)鍵,在這篇文章中,小編將帶領(lǐng)大家一起反射和動(dòng)態(tài)屬性的概念,并提供大量示例代碼,希望對(duì)大家有所幫助2023-11-11以一個(gè)投票程序的實(shí)例來講解Python的Django框架使用
這篇文章主要介紹了以一個(gè)投票程序的實(shí)例來講解Python的Django框架使用,Django是Python世界中人氣最高的MVC框架,需要的朋友可以參考下2016-02-02