最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python+pyhyper實現(xiàn)識別圖片中的車牌號思路詳解

 更新時間:2022年12月23日 14:46:05   作者:月月吃喝  
最近領(lǐng)導給布置了一個基于圖片識別車牌號的工具開發(fā)任務(wù),然后就去研究實現(xiàn)邏輯,自己根據(jù)opencv寫了一個小demo,發(fā)現(xiàn)不僅速度慢而且成功率極低。然后,就找到了Hyperlpr開源項目,這篇文章主要介紹了python+pyhyper實現(xiàn)識別圖片中的車牌號,需要的朋友可以參考下

背景

最近領(lǐng)導給布置了一個基于圖片識別車牌號的工具開發(fā)任務(wù),然后就去研究實現(xiàn)邏輯,自己根據(jù)opencv寫了一個小demo,發(fā)現(xiàn)不僅速度慢而且成功率極低。然后,就找到了Hyperlpr開源項目。

環(huán)境搭建

排雷1:有教程說在github上下載源碼:https://github.com/zeusees/HyperLPR,自己編譯,結(jié)果github上已經(jīng)停止維護了,然后再gitee找到了:Hyperlpr項目
排雷2:hyperlpr環(huán)境搭建比較苛刻,建議直接在requirements.txt文件中維護好版本號

實現(xiàn):
我是直接pip install hyperlpr 安裝的

在這里插入圖片描述

驗證

import cv2
from hyperlpr import HyperLPR_plate_recognition

if __name__ == '__main__':
    image = cv2.imread("one.jpeg")
    result = HyperLPR_plate_recognition(image)

報錯:

    mat_ = cv2.estimateRigidTransform(org_pts, target_pts, True)
AttributeError: module 'cv2' has no attribute 'estimateRigidTransform'

修改hyperlpr.py文件,大概在231行

mat_ = cv2.estimateRigidTransform(org_pts, target_pts, True)
修改為

 mat_,inlier = cv2.estimateAffine2D(org_pts, target_pts)

再次執(zhí)行,執(zhí)行成功,返回一個列表,依次是車牌號,準確率,車牌號在圖片中的坐標

在這里插入圖片描述

二次開發(fā)

經(jīng)過實驗發(fā)現(xiàn),如果圖片中存在多個車牌號,只能識別圖片中的一個車牌號

拜讀源碼發(fā)現(xiàn)self.detect_ssd(image)函數(shù)返回的是一個可迭代變量,追蹤進去應該可以發(fā)現(xiàn)點東西

在這里插入圖片描述

和猜測一致,self.detect_ssd(image)返回的是一個列表,但是找到一個車牌就返回了,只需要將 return cropped_images 放到for循環(huán)外賣外面即可
修改前:

在這里插入圖片描述

修改后:

在這里插入圖片描述

驗證:

在這里插入圖片描述

標記

附源碼:

在這里插入圖片描述

import cv2
import numpy as np
from PIL import ImageFont, Image, ImageDraw
from hyperlpr import HyperLPR_plate_recognition

if __name__ == '__main__':
    image = cv2.imread("two.jpeg")
    result = HyperLPR_plate_recognition(image)
    print(result)
    # 標記車牌號
    if result:
        for index, item in enumerate(result):
            # 車牌號
            car_code = item[0]
            # 可信度
            conf = item[1]
            # 車牌框左上角坐標
            pt1 = (item[2][0], item[2][1])
            # 車牌框右下角坐標
            pt2 = (item[2][2], item[2][3])
            # 繪制車牌框
            cv2.rectangle(image, pt1=pt1, pt2=pt2, color=(255, 0, 0), thickness=3)
            # 設(shè)置需要顯示的字體
            font_path = 'fonts/simsun.ttc'
            font = ImageFont.truetype(font_path, size=40, index=1)
            image = Image.fromarray(image)
            draw = ImageDraw.Draw(image)
            # 繪制文字信息
            draw.text((pt1[0] + 30, pt1[1] - 30), car_code, font=font, fill=(0, 0, 255))
            image = np.array(image)
        # cv2.namedWindow('image', 0)
        # cv2.imshow('image', image)
        # cv2.waitKey(100000)
        cv2.imwrite('d:/two.jpeg', image)

到此這篇關(guān)于python+pyhyper實現(xiàn)識別圖片中的車牌號的文章就介紹到這了,更多相關(guān)python車牌號識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

周至县| 仙桃市| 安庆市| 克山县| 绥化市| 古田县| 锡林郭勒盟| 土默特左旗| 阳原县| 盈江县| 新沂市| 佛山市| 宣化县| 绥滨县| 长沙县| 昆明市| 横山县| 华亭县| 泰来县| 胶南市| 康马县| 衡阳市| 佳木斯市| 尤溪县| 安新县| 扎囊县| 恩施市| 永吉县| 冕宁县| 宿松县| 安顺市| 侯马市| 蒲城县| 吐鲁番市| 确山县| 元江| 滨州市| 和龙市| 渝中区| 贡山| 武川县|