一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中pyzxing安裝與測(cè)試方法

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 作者:OpenCV學(xué)堂 ? 2022-06-12 16:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引子

Python中有幾個(gè)開源的條碼解析庫,之前我測(cè)試過pyzbar、libdmx這些庫,發(fā)現(xiàn)都是個(gè)錘子,主要是功能太弱了,解碼能力堪憂,之前我用ZXING C++版本寫過一很好用的條碼跟二維碼的解碼庫,于是我搜索一下看看是否有Python版本的ZXING,發(fā)現(xiàn)真有就是pyzxing,但是需要注意的是,它不是基于ZXing C++的,它是通過Python調(diào)用Java的依賴實(shí)現(xiàn)解碼的,而且默認(rèn)是支持hard模型跟旋轉(zhuǎn)模式解碼的。

pyzxing安裝與測(cè)試

https://pypi.org/project/pyzxing/

pyzxing在python下安裝特別簡(jiǎn)單,只需要一條命令行執(zhí)行:

pip install pyzxing

但是它其實(shí)是依賴OpenJDK才能運(yùn)行的,推薦最好安裝1.8版本,下載地址如下:

https://www.oracle.com/java/technologies/downloads/#jdk18-windows

安裝好之后,cmd運(yùn)行測(cè)試如下:

fa9fe6c4-ea27-11ec-ba43-dac502259ad0.png

相關(guān)解碼函數(shù)

相關(guān)功能與函數(shù)說明可以直接訪問這個(gè)頁面:

https://pypi.org/project/pyzxing/

它支持三種輸入

-直接輸入圖像文件名,然后解碼-使用opencv-python讀取圖像,輸入numpy數(shù)據(jù)解碼-使用目錄通配符,支持一次多張解碼操作

相關(guān)函數(shù)演示代碼如下:

from pyzxing import BarCodeReader
reader = BarCodeReader()results = reader.decode('/PATH/TO/FILE')# Or file pattern for multiple filesresults = reader.decode('/PATH/TO/FILES/*.png')print(results)# Or a numpy array# Requires additional installation of opencv# pip install opencv-pythonresults = reader.decode_array(img)

OpenCV-Python解碼開發(fā)演示

在實(shí)際使用ZXING的解碼中,首先需要做的就是各種圖像預(yù)處理,因?yàn)槎鄶?shù)工業(yè)噴碼的圖像質(zhì)量都很一般,直接ZXING解碼一次成功率大概只有50%左右,都需要通過各種預(yù)處理之后輸入到ZXING二次解碼,二次解碼成功率會(huì)提升到95%左右,這個(gè)時(shí)候需要針對(duì)那些特別難的碼進(jìn)行更深度的預(yù)處理跟重新裁剪然后三次解碼,總的三次解碼成功率可以達(dá)到99%左右。這個(gè)里面涉及特別多解碼細(xì)節(jié)問題。這里以最簡(jiǎn)單的幾個(gè)工業(yè)常見的DataMatrix碼的解碼為例說明:
frompyzxingimportBarCodeReader
importcv2
importos

code_roi=cv2.imread(os.path.join(test_dir,f),cv2.IMREAD_GRAYSCALE)
cv2.bitwise_not(code_roi,code_roi)
ret,binary=cv2.threshold(code_roi,0,255,cv2.THRESH_BINARY|cv2.THRESH_OTSU)
se=cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))
binary=cv2.erode(binary,se)
results=reader.decode_array(binary)
found=False
forresultinresults:
code_txt=result.get('parsed')
ifcode_txtisnotNone:
print("decodecontent:",code_txt)
print("codetype:",result.get('format'))
found=True

fad250a0-ea27-11ec-ba43-dac502259ad0.png

fb048f66-ea27-11ec-ba43-dac502259ad0.png

fb509e56-ea27-11ec-ba43-dac502259ad0.png

解碼輸出

fbfafe0a-ea27-11ec-ba43-dac502259ad0.png

原文標(biāo)題:OpenCV+pyzxing實(shí)現(xiàn)條碼解析

文章出處:【微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64948
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86830
  • 解碼庫
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6642

原文標(biāo)題:OpenCV+pyzxing實(shí)現(xiàn)條碼解析

文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    linux虛擬環(huán)境調(diào)用Linux 版matlab編譯的python庫時(shí)出錯(cuò)

    、readme.txt、 requiredMCRProducts.txt、init.py、CAO_python.ctf。 在linux環(huán)境按照以下步驟安裝matlab runtime2018b: ① cd到MCR
    發(fā)表于 07-18 10:40

    【VisionFive 2單板計(jì)算機(jī)試用體驗(yàn)】安裝openplc

    官網(wǎng)看到開發(fā)板可以安裝測(cè)試openplc,下面來體驗(yàn)下openplc功能。 一、安裝軟件 1.1、安裝軟件包 root@starfive:~# sudo apt-get install
    發(fā)表于 07-15 23:30

    Hi3861 wifiiot_hispark_pegasus 按教程安裝python3 -m pip install build/lite 報(bào)錯(cuò)

    問題1: 報(bào)錯(cuò): 問題2: 我安裝網(wǎng)上搜的方法執(zhí)行 python3 -m pip install --user ohos-build==0.4.3 hb -v [OHOS INFO] hb
    發(fā)表于 06-14 16:48

    ?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗(yàn)~

    RaspberryPiOS預(yù)裝了Python,你需要使用其虛擬環(huán)境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負(fù)責(zé)人NateContino撰寫的一篇實(shí)用教程,幫助你入門
    的頭像 發(fā)表于 03-25 09:34 ?346次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升你的開發(fā)體驗(yàn)~

    使用Python實(shí)現(xiàn)xgboost教程

    使用Python實(shí)現(xiàn)XGBoost模型通常涉及以下幾個(gè)步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評(píng)估和模型預(yù)測(cè)。以下是一個(gè)詳細(xì)的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?1387次閱讀

    Triton編譯器安裝步驟詳解

    必要的依賴: sudo apt-get updatesudo apt-get install build-essential cmake python3 python3-dev 對(duì)于 Windows(使用 WSL): 在 WSL
    的頭像 發(fā)表于 12-24 17:35 ?2653次閱讀

    如何在Windows安裝Ubuntu系統(tǒng)

    在Windows安裝Ubuntu系統(tǒng)通常有兩種方法:使用虛擬機(jī)軟件安裝Ubuntu作為虛擬機(jī),或者使用雙啟動(dòng)安裝Ubuntu與Window
    的頭像 發(fā)表于 12-12 14:29 ?2120次閱讀

    Pythondict支持多個(gè)key的方法

    ? 在Python,字典(dict)是一種非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它允許我們通過鍵(key)來存儲(chǔ)和檢索值(value)。有時(shí)候,我們可能想要根據(jù)多個(gè)鍵來檢索或操作字典的數(shù)據(jù)。雖然Python
    的頭像 發(fā)表于 11-29 15:59 ?540次閱讀

    使用Python進(jìn)行串口通信的案例

    當(dāng)然!以下是一個(gè)使用Python進(jìn)行串口通信的簡(jiǎn)單示例。這個(gè)示例展示了如何配置串口、發(fā)送數(shù)據(jù)以及接收數(shù)據(jù)。我們將使用 pyserial 庫,這是一個(gè)非常流行的用于串口通信的Python庫。 首先,你
    的頭像 發(fā)表于 11-22 09:11 ?1483次閱讀

    電腦是已經(jīng)安裝python2.7,為什么打開GUI的script window時(shí),一直提示未找到python2.7?

    電腦是已經(jīng)安裝python2.7,為什么打開GUI的script window時(shí),一直提示未找到python2.7?
    發(fā)表于 11-14 07:50

    Python多線程和多進(jìn)程的區(qū)別

    Python作為一種高級(jí)編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進(jìn)程是最常見的兩種方式之一。在本文中,我們將探討Python多線程與多進(jìn)程的概念、區(qū)別以及如何使用線程池與進(jìn)程池來提高并發(fā)執(zhí)行效率。
    的頭像 發(fā)表于 10-23 11:48 ?1029次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>中</b>多線程和多進(jìn)程的區(qū)別

    emc有哪些測(cè)試方法和分類方法

    EMC(電磁兼容性)測(cè)試是確保設(shè)備或系統(tǒng)在電磁環(huán)境能夠正常工作且不對(duì)其他設(shè)備或系統(tǒng)造成不可接受的電磁干擾的重要方法。EMC測(cè)試主要分為兩大類:EMI(電磁干擾)
    的頭像 發(fā)表于 10-21 17:09 ?2278次閱讀

    環(huán)路測(cè)試的接線方法及原因

    環(huán)路測(cè)試是一種用于評(píng)估電子系統(tǒng)(如開關(guān)電源)穩(wěn)定性和性能的重要測(cè)試方法。在環(huán)路測(cè)試,正確的接線方法
    的頭像 發(fā)表于 10-06 16:49 ?2724次閱讀
    環(huán)路<b class='flag-5'>測(cè)試</b>的接線<b class='flag-5'>方法</b>及原因

    家用斷路器的安裝方法

    家用斷路器的安裝是家庭電氣安全的重要環(huán)節(jié),其安裝方法需要細(xì)致且準(zhǔn)確,以確保電路的安全可靠運(yùn)行。以下是對(duì)家用斷路器安裝方法的詳細(xì)介紹,包括
    的頭像 發(fā)表于 08-23 11:36 ?2896次閱讀

    使用Python進(jìn)行Ping測(cè)試

    在網(wǎng)絡(luò)工程,Ping測(cè)試是一種常用的網(wǎng)絡(luò)診斷工具,用于檢查網(wǎng)絡(luò)連接的可達(dá)性和響應(yīng)時(shí)間。Ping測(cè)試通過向目標(biāo)主機(jī)發(fā)送ICMP(Internet Control Message Protocol
    的頭像 發(fā)表于 08-12 17:56 ?1018次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行Ping<b class='flag-5'>測(cè)試</b>