天天看點

智能停車場車牌識别系統【python】

智能停車場車牌識别系統【python】
智能停車場車牌識别系統【python】
智能停車場車牌識别系統【python】
智能停車場車牌識别系統【python】

百度AI:​​https://ai.baidu.com​​  申請App_id

智能停車場車牌識别系統【python】
智能停車場車牌識别系統【python】

代碼重點:pip install  baidu_api

from aip import AipOcr

import os

# 百度識别車牌
# 申請位址 http://ai.baidu.com/
# 請将您申請的Key寫到項目根目錄下的key.txt檔案中,并且按照相應的内容進行填寫
filename = 'file/teddy_key.txt'  # 記錄申請的Key的檔案位置
if os.path.exists(filename):  # 判斷檔案是否存在
    with open(filename, "r") as file:  # 打開檔案
        dictkey = eval(file.readlines()[0])  # 讀取全部内容轉換為字典
        # 以下擷取的三個Key是進入百度AI開放平台的控制台的應用清單裡建立應用得來的
        APP_ID = dictkey['APP_ID']  # 擷取申請的APIID
        API_KEY = dictkey['API_KEY']  # 擷取申請的APIKEY
        SECRET_KEY = dictkey['SECRET_KEY']  # 擷取申請的SECRETKEY
else:
    print("請先在file目錄下建立key.txt,并且寫入申請的Key!格式如下:"
          "\n{'APP_ID':'申請的APIID', 'API_KEY':'申請的APIKEY', 'SECRET_KEY':'申請的SECRETKEY'}")
# 初始化AipOcr對象
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)


# 讀取檔案
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()


# 根據圖檔傳回車牌号
def getcn():
    # 讀取圖檔
    image = get_file_content('file/timg.jpeg')
    # 調用車牌識别
    results = client.licensePlate(image)["words_result"]['number']
    # 輸出車牌号
    print(results)
    return results


# getcn()      

時間計算【計算星期幾,與時間差】

import datetime


# 計算停車時間四舍五入
def DtCalc(stTime, edTime):
    st = datetime.datetime.strptime(stTime, "%Y-%m-%d %H:%M")
    ed = datetime.datetime.strptime(edTime, "%Y-%m-%d %H:%M")
    rtn = ed - st
    y = round(rtn.total_seconds() / 60 / 60)
    # 判斷停車時間 如果時間
    if y == 0:
        y = 1
    return y


# 傳回 星期幾标記 0代表星期一 1代表星期二...6代表星期天
def get_week_numbeer(date):
    date = datetime.datetime.strptime(date, "%Y-%m-%d %H:%M")
    day = date.weekday()
    return day      

調用攝像頭

import cv2

try:
    cam = cv2.VideoCapture(0)
except:
    print('請連接配接攝像頭')


# 從攝像頭讀取圖檔
sucess, img = cam.read()
# 儲存圖檔,并退出。
cv2.imwrite('file/test.jpg', img)
# 加載圖像
image = pygame.image.load('file/test.jpg')
# 設定圖檔大小
image = pygame.transform.scale(image, (640, 480))
# 繪制視訊畫面
screen.blit(image, (2, 2))      
# 關閉攝像頭
cam.release()