国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何使用 Python 檢測(cè)和識(shí)別車牌(附 Python 代碼)

這篇具有很好參考價(jià)值的文章主要介紹了如何使用 Python 檢測(cè)和識(shí)別車牌(附 Python 代碼)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

車牌檢測(cè)與識(shí)別技術(shù)用途廣泛,可以用于道路系統(tǒng)、無票停車場(chǎng)、車輛門禁等。這項(xiàng)技術(shù)結(jié)合了計(jì)算機(jī)視覺和人工智能。

本文將使用Python創(chuàng)建一個(gè)車牌檢測(cè)和識(shí)別程序。該程序?qū)斎雸D像進(jìn)行處理,檢測(cè)和識(shí)別車牌,最后顯示車牌字符,作為輸出內(nèi)容。

創(chuàng)建Python環(huán)境

要輕松地完成本教程,您需要熟悉Python基礎(chǔ)知識(shí)。應(yīng)先創(chuàng)建程序環(huán)境。

在開始編程之前,您需要在環(huán)境中安裝幾個(gè)庫。打開任何Python IDE,創(chuàng)建一個(gè)Python文件。在終端上運(yùn)行命令以安裝相應(yīng)的庫。您應(yīng)該在計(jì)算機(jī)上預(yù)先安裝Python PIP。

  • OpenCV-Python: 您將使用這個(gè)庫對(duì)輸入圖像進(jìn)行預(yù)處理,并顯示各個(gè)輸出圖像。
pip install OpenCV-Python
  • imutils: 您將使用這個(gè)庫將原始輸入圖像裁剪成所需的寬度。
pip install imutils
  • pytesseract: 您將使用這個(gè)庫提取車牌字符,并將它們轉(zhuǎn)換成字符串。
pip install  pytesseract

pytesseract庫依賴Tesseract OCR引擎進(jìn)行字符識(shí)別。

如何在您的計(jì)算機(jī)上安裝Tesseract OCR?

Tesseract OCR是一種可以識(shí)別語言字符的引擎。在使用pytesseract庫之前,您應(yīng)該在計(jì)算機(jī)上安裝它。步驟如下:

1. 打開任何基于Chrome的瀏覽器。

2. 下載Tesseract OCR安裝程序。

3. 運(yùn)行安裝程序,像安裝其他程序一樣安裝它。

技術(shù)提升

技術(shù)要學(xué)會(huì)分享、交流,不建議閉門造車。一個(gè)人走的很快、一堆人可以走的更遠(yuǎn)。

本文來自技術(shù)群粉絲的分享、推薦,資料、代碼、數(shù)據(jù)、技術(shù)交流提升,均可加交流群獲取,群友已超過2000人,添加時(shí)切記的備注方式為:來源+興趣方向,方便找到志同道合的朋友。

方式①、添加微信號(hào):pythoner666,備注:來自 CSDN + Python
方式②、微信搜索公眾號(hào):Python學(xué)習(xí)與數(shù)據(jù)挖掘,后臺(tái)回復(fù):加群

準(zhǔn)備好環(huán)境并安裝tesseract OCR后,您就可以編寫程序了。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

導(dǎo)入庫

首先導(dǎo)入在環(huán)境中安裝的庫。導(dǎo)入庫讓您可以在項(xiàng)目中調(diào)用和使用它們的函數(shù)。

  • import cv2

  • import imutils

  • import pytesseract

您需要以cv2形式導(dǎo)入OpenCV-Python庫。使用與安裝時(shí)相同的名稱導(dǎo)入其他庫。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

獲取輸入

然后將pytesseract指向安裝Tesseract引擎的位置。使用cv2.imread函數(shù)將汽車圖像作為輸入。將圖像名稱換成您在使用的那個(gè)圖像的名稱。將圖像存儲(chǔ)在項(xiàng)目所在的同一個(gè)文件夾中,以方便操作。

pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'  
original_image = cv2.imread('image3.jpeg')  

左右滑動(dòng)查看完整代碼

您可以將下面的輸入圖像換成想要使用的圖像。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

預(yù)處理輸入

將圖像寬度調(diào)整為500像素,然后將圖像轉(zhuǎn)換成灰度圖像,因?yàn)閏anny邊緣檢測(cè)函數(shù)只適用于灰度圖像。最后,調(diào)用bilateralFilter函數(shù)以降低圖像噪聲。

original_image = imutils.resize(original_image, width=500 )  
gray_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)  
gray_image = cv2.bilateralFilter(gray_image, 11, 17, 17)

左右滑動(dòng)查看完整代碼

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

在輸入端檢測(cè)車牌

檢測(cè)車牌是確定汽車上有車牌字符的那部分的過程。

(1)執(zhí)行邊緣檢測(cè)

先調(diào)用cv2.Canny函數(shù),該函數(shù)可自動(dòng)檢測(cè)預(yù)處理圖像上的邊緣。

edged_image = cv2.Canny(gray_image, 30,200)

我們將通過這些邊緣找到輪廓。

(2)尋找輪廓

調(diào)用cv2.findContours函數(shù),并傳遞邊緣圖像的副本。這個(gè)函數(shù)將檢測(cè)輪廓。使用cv2.drawContours函數(shù),繪制原始圖像上已檢測(cè)的輪廓。最后,輸出所有可見輪廓已繪制的原始圖像。

contours, new = cv2.findContours(edged_image.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)  
img1 = original_image.copy()  
cv2.drawContours(img1, contours, -1, (0, 255, 0), 3)  
cv2.imshow("img1", img1)  

該程序繪制它在汽車圖像上找到的所有輪廓。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

找到輪廓后,您需要對(duì)它們進(jìn)行篩選,以確定最佳候選輪廓。

(3)篩選輪廓

根據(jù)最小面積30對(duì)輪廓進(jìn)行篩選。忽略小于這個(gè)面積的輪廓,因?yàn)樗鼈儾惶赡苁擒嚺戚喞?。?fù)制原始圖像,在圖像上繪制前30個(gè)輪廓。最后,顯示圖像。

contours = sorted(contours, key = cv2.contourArea, reverse = True)[:30]  
# stores the license plate contour  
screenCnt = None  
img2 = original_image.copy()  
  
# draws top 30 contours  
cv2.drawContours(img2, contours, -1, (0, 255, 0), 3)  
cv2.imshow("img2", img2)

現(xiàn)在輪廓數(shù)量比開始時(shí)要少。唯一繪制的輪廓是那些近似含有車牌的輪廓。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

最后,您需要遍歷已篩選的輪廓,確定哪一個(gè)是車牌。

(4)遍歷前30個(gè)輪廓

創(chuàng)建遍歷輪廓的for循環(huán)。尋找有四個(gè)角的輪廓,確定其周長和坐標(biāo)。存儲(chǔ)含有車牌的輪廓的圖像。最后,在原始圖像上繪制車牌輪廓并加以顯示。

count = 0  
idx = 7  
  
**for** c **in** contours:  
    # approximate the license plate contour  
    contour_perimeter = cv2.arcLength(c, True)  
    approx = cv2.approxPolyDP(c, 0.018 * contour_perimeter, True)  
  
    # Look for contours with 4 corners  
    **if** len(approx) == 4:  
        screenCnt = approx  
  
        # find the coordinates of the license plate contour  
        x, y, w, h = cv2.boundingRect(c)  
        new_img = original_image [ y: y + h, x: x + w]  
  
        # stores the new image  
        cv2.imwrite('./'+str(idx)+'.png',new_img)  
        idx += 1  
        break  
  
# draws the license plate contour on original image  
cv2.drawContours(original_image , [screenCnt], -1, (0, 255, 0), 3)  
cv2.imshow("detected license plate", original_image )

循環(huán)之后,程序已識(shí)別出含有車牌的那個(gè)輪廓。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

識(shí)別檢測(cè)到的車牌

識(shí)別車牌意味著讀取已裁剪車牌圖像上的字符。加載之前存儲(chǔ)的車牌圖像并顯示它。然后,調(diào)用pytesseract.image_to_string函數(shù),傳遞已裁剪的車牌圖像。這個(gè)函數(shù)將圖像中的字符轉(zhuǎn)換成字符串。

# filename of the cropped license plate image  
cropped_License_Plate = './7.png'  
cv2.imshow("cropped license plate", cv2.imread(cropped_License_Plate))  
  
# converts the license plate characters to string  
text = pytesseract.image_to_string(cropped_License_Plate, lang='eng')

左右滑動(dòng)查看完整代碼

已裁剪的車牌如下所示。上面的字符將是您稍后在屏幕上輸出的內(nèi)容。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

檢測(cè)并識(shí)別車牌之后,您就可以顯示輸出了。

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

顯示輸出

這是最后一步。您將提取的文本輸出到屏幕上。該文本含有車牌字符。

print("License plate is:", text)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

程序的預(yù)期輸出應(yīng)該如下圖所示:

汽車號(hào)碼識(shí)別與定位python,學(xué)習(xí)筆記,python,opencv,計(jì)算機(jī)視覺

車牌文本可以在終端上看到。

磨礪您的Python技能

用Python檢測(cè)和識(shí)別車牌是一個(gè)有意思的項(xiàng)目。它有挑戰(zhàn)性,所以應(yīng)該會(huì)幫助您學(xué)到關(guān)于Python的更多知識(shí)。

說到編程,實(shí)際運(yùn)用是掌握一門語言的關(guān)鍵。為了鍛煉技能,您需要開發(fā)有意思的項(xiàng)目。文章來源地址http://www.zghlxwxcb.cn/news/detail-801819.html

到了這里,關(guān)于如何使用 Python 檢測(cè)和識(shí)別車牌(附 Python 代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 違章停車車牌識(shí)別:使用YOLOv5進(jìn)行車牌檢測(cè)與識(shí)別

    介紹 準(zhǔn)備工作 數(shù)據(jù)集準(zhǔn)備 訓(xùn)練YOLOv5模型 車牌識(shí)別 違章停車檢測(cè) 總結(jié)與展望 違章停車問題在城市中是一個(gè)很常見的交通問題。為了有效地管理違章停車問題,我們需要對(duì)違停車輛進(jìn)行識(shí)別。本篇博客將向您展示如何使用YOLOv5進(jìn)行車牌檢測(cè)與識(shí)別,從而輔助管理違章停車問題

    2024年02月07日
    瀏覽(30)
  • 利用resnet50模型實(shí)現(xiàn)車牌識(shí)別(Python代碼,.ipynb和.py兩種文件保存都有,可以使用jupyter或pycharm運(yùn)行)

    利用resnet50模型實(shí)現(xiàn)車牌識(shí)別(Python代碼,.ipynb和.py兩種文件保存都有,可以使用jupyter或pycharm運(yùn)行)

    1.代碼的主要流程如下: 導(dǎo)入所需的庫和模塊。 對(duì)數(shù)據(jù)集進(jìn)行可視化,隨機(jī)選擇一些圖像進(jìn)行展示。 加載圖像數(shù)據(jù)集,并將圖像和標(biāo)簽存儲(chǔ)在數(shù)組中。 對(duì)標(biāo)簽進(jìn)行獨(dú)熱編碼。 劃分訓(xùn)練集和測(cè)試集。 使用圖像數(shù)據(jù)增強(qiáng)技術(shù)增加訓(xùn)練數(shù)據(jù)的多樣性。 定義一些評(píng)估指標(biāo)的函數(shù)。

    2024年02月05日
    瀏覽(75)
  • 基于YOLOv8模型+CnOCR識(shí)別技術(shù)實(shí)現(xiàn)汽車車牌識(shí)別
  • python+opencv生成較真實(shí)的車牌號(hào)碼圖片

    python+opencv生成較真實(shí)的車牌號(hào)碼圖片

    本文參考github代碼:https://github.com/loveandhope/license-plate-generator ?效果: 一、代碼目錄結(jié)構(gòu): background目錄下存放各種背景圖片? font目錄下存放車牌中文、字符的ttf字體 images目錄下存放藍(lán)色底牌、新能源綠色底牌、污漬(噪聲)的圖片 完整代碼可參考:https://download.csdn.net/d

    2024年02月02日
    瀏覽(20)
  • 車牌識(shí)別算法 基于yolov5的車牌檢測(cè)+crnn中文車牌識(shí)別 支持12種中文車牌識(shí)別

    車牌識(shí)別算法 基于yolov5的車牌檢測(cè)+crnn中文車牌識(shí)別 支持12種中文車牌識(shí)別

    1.單行藍(lán)牌 2.單行黃牌 3.新能源車牌 4.白色警用車牌 5 教練車牌 6 武警車牌 7 雙層黃牌 8 雙層武警 9 使館車牌 10 港澳牌車 11 雙層農(nóng)用車牌 12 民航車牌 效果如下: 車牌檢測(cè)+關(guān)鍵點(diǎn)定位 1.第一步是目標(biāo)檢測(cè),目標(biāo)檢測(cè)大家都很熟悉,常見的yolo系列,這里的話我用的是我修改后

    2024年02月04日
    瀏覽(57)
  • 【模式識(shí)別&目標(biāo)檢測(cè)】——模式識(shí)別技術(shù)&車牌檢測(cè)應(yīng)用

    【模式識(shí)別&目標(biāo)檢測(cè)】——模式識(shí)別技術(shù)&車牌檢測(cè)應(yīng)用

    目錄 引入 一、模式識(shí)別主要方法 1、統(tǒng)計(jì)模式識(shí)別 2、基于隱馬爾可夫模型識(shí)別 3、模糊模式識(shí)別 4、人工神經(jīng)網(wǎng)絡(luò)模式識(shí)別 總結(jié) 二、模式識(shí)別應(yīng)用 1、車牌定位 2、車牌識(shí)別 參考文獻(xiàn): 人在觀察事物或現(xiàn)象時(shí),常 尋找它與其他事物或現(xiàn)象不同之處,并根據(jù)一定目的把相似、

    2024年02月13日
    瀏覽(87)
  • 【智慧交通項(xiàng)目實(shí)戰(zhàn)】 《 OCR車牌檢測(cè)與識(shí)別》(二):基于YOLO的車牌檢測(cè)

    【智慧交通項(xiàng)目實(shí)戰(zhàn)】 《 OCR車牌檢測(cè)與識(shí)別》(二):基于YOLO的車牌檢測(cè)

    ????? 作者簡(jiǎn)介: CSDN、阿里云人工智能領(lǐng)域博客專家,新星計(jì)劃計(jì)算機(jī)視覺導(dǎo)師,百度飛槳PPDE,專注大數(shù)據(jù)與AI知識(shí)分享。? 公眾號(hào):GoAI的學(xué)習(xí)小屋 ,免費(fèi)分享書籍、簡(jiǎn)歷、導(dǎo)圖等,更有交流群分享寶藏資料,關(guān)注公眾號(hào)回復(fù)“加群”或?? 點(diǎn)擊鏈接 加群。 ?? 專欄推

    2024年02月08日
    瀏覽(36)
  • 基于PaddleOCR的車牌檢測(cè)識(shí)別

    基于PaddleOCR的車牌檢測(cè)識(shí)別

    由于本人水平有限,難免出現(xiàn)錯(cuò)漏,敬請(qǐng)批評(píng)改正。 更多精彩內(nèi)容,可點(diǎn)擊進(jìn)入YOLO系列專欄、自然語言處理 專欄或我的個(gè)人主頁查看 基于DETR的人臉偽裝檢測(cè) YOLOv7訓(xùn)練自己的數(shù)據(jù)集(口罩檢測(cè)) YOLOv8訓(xùn)練自己的數(shù)據(jù)集(足球檢測(cè)) YOLOv5:TensorRT加速YOLOv5模型推理 YOLOv5:I

    2024年02月13日
    瀏覽(40)
  • 基于OpenCV+LPR模型端對(duì)端智能車牌識(shí)別——深度學(xué)習(xí)和目標(biāo)檢測(cè)算法應(yīng)用(含Python+Andriod全部工程源碼)+CCPD數(shù)據(jù)集

    基于OpenCV+LPR模型端對(duì)端智能車牌識(shí)別——深度學(xué)習(xí)和目標(biāo)檢測(cè)算法應(yīng)用(含Python+Andriod全部工程源碼)+CCPD數(shù)據(jù)集

    本項(xiàng)目基于CCPD數(shù)據(jù)集和LPR(License Plate Recognition,車牌識(shí)別)模型,結(jié)合深度學(xué)習(xí)和目標(biāo)檢測(cè)等先進(jìn)技術(shù),構(gòu)建了一個(gè)全面的車牌識(shí)別系統(tǒng),實(shí)現(xiàn)了從車牌檢測(cè)到字符識(shí)別的端到端解決方案。 首先,我們利用CCPD數(shù)據(jù)集,其中包含大量的中文車牌圖像,用于模型的訓(xùn)練和驗(yàn)證。

    2024年02月09日
    瀏覽(23)
  • python中使用opencv LED屏數(shù)字識(shí)別(可用做車牌識(shí)別,一樣的原理)

    python中使用opencv LED屏數(shù)字識(shí)別(可用做車牌識(shí)別,一樣的原理)

    應(yīng)項(xiàng)目要求需要基于cpu的LED數(shù)字識(shí)別,為了滿足需求,使用傳統(tǒng)方法進(jìn)行實(shí)驗(yàn)。識(shí)別傳感器中顯示的數(shù)字。因此使用opencv的函數(shù)做一些處理,實(shí)現(xiàn)功能需求。 首先讀取圖像,因?yàn)槲覜]想大致得到LED屏幕的區(qū)域,因此將RGB轉(zhuǎn)換為HSV空間,并分別設(shè)置H、S和V的閾值,讓該區(qū)域顯現(xiàn)

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包