資源簡介
下載解壓后安裝必要的py程序庫 再打開cardshiping運行程序及可,詳細說明見博主相關介紹。
代碼片段和文件信息
#coding=gbk
import?cv2
import?numpy?as?np
import?cardpictureprocessing?as?cpp
def?card_color_predict(card_imgs?Cardsetting):
“““使用顏色定位,排除不是車牌的矩形,目前只識別藍、綠、黃車牌“““
cards_to_color?=?[]
colors_to_card?=?[]
for?card_index?card_img?in?enumerate(card_imgs): #枚舉每一個車牌?enumerate返回索引和值
green?=?yello?=?blue?=?black?=?white?=?0
card_img_hsv?=?cv2.cvtColor(card_img?cv2.COLOR_BGR2HSV) #得到顏色空間轉換后的車牌圖片轉為hsv方便識別顏色
if?card_img_hsv?is?None: #有轉換失敗的可能,原因來自于上面矯正矩形出錯?轉換失敗則重新
continue
#以下為車牌顏色判斷
row_num?column_num?=?card_img_hsv.shape[:2] #得到車牌像素的行列數值
card_img_count?=?row_num?*?column_num #計算車牌面積
for?row?in?range(row_num): #遍歷車牌區域全部像素用于判斷車牌顏色
for?column?in?range(column_num):
H?=?card_img_hsv.item(row?column?0)
S?=?card_img_hsv.item(row?column?1)
V?=?card_img_hsv.item(row?column?2)
if?11??34: #圖片黃色部分像素總和
yello?+=?1
elif?35??34: #圖片綠色部分像素總和
green?+=?1
elif?99??34: #圖片藍色部分像素總和
blue?+=?1
if?0? black?+=?1
elif?0? white?+=?1
color?=?“no“????#顏色初始化
limit1?=?limit2?=?0
if?yello?*?2.2?>=?card_img_count: #判斷車牌顏色
color?=?“y“ #黃色為11-34
limit1?=?11
limit2?=?34
elif?green?*?2.7?>=?card_img_count:
color?=?“g“ #綠色為35-99
limit1?=?35
limit2?=?99
elif?blue?*?2.2?>=?card_img_count:
color?=?“b“ #藍色為100-124
limit1?=?100
limit2?=?124
elif?black?+?white?>=?card_img_count?*?0.7:???#TODO
color?=?“other“
if?color?not?in?(“b“?“y“?“g“):
continue
#以下為根據車牌顏色再定位,縮小邊緣非車牌邊界,再篩選
xl?xr?yh?yl?=?cpp.accurate_place(card_img_hsv?limit1?limit2?color?Cardsetting)???#確定好顏色后調用前面的函數精確縮小車牌區域
if?yl?==?yh?and?xl?==?xr: #如果原圖縮為一點則不是車牌
continue
need_accurate?=?False
if?yl?>=?yh: #裁剪出錯調整后重新裁剪
yl?=?0
yh?=?row_num
need_accurate?=?True
if?xl?>=?xr:
xl?=?0
xr?=?column_num
need_accurate?=?True
card_imgs[card_index]?=?card_img[yl:yh?xl:xr]?if?color?!=?“g“?or?yl?(yh-yl)//4?else?card_img[yl-(yh-yl)//4:yh?xl:xr]
if?need_accurate:???#可能x或y方向未縮小,需要再試一次
card_img?=?card_imgs[card_index]
card_img_hsv?=?cv2.cvtColor(card_img?cv2.COLOR_BGR2HSV)????#顏色空間轉換?轉換為hsv
xl?xr?yh?yl?=?cpp.accurate_place(card_img_hsv?limit1?limit2?color?Cardsetting)
if?yl?==?yh?and?xl?==?xr:
continue
if?yl?>=?yh:
yl?=?0
yh?=?row_num
if?xl?>=?xr:
xl?=?0
xr?=?column_num
card_imgs[card_index]?=?card_img[yl:yh?xl:xr]?if?color?!=?“g“?or?yl?(yh-yl)//4?else?card_img[yl-(yh-yl)//4:yh?xl:xr]
colors_to_card.append(color) #的到的顏色加入顏色序列
cards_to_color.append(card_imgs[card_index])
return(cards_to_color?colors_to_card)
def?card_char_predict(cards_to_color?colors_to_card?trainsvm?Cardsetting):
“““識別車牌中的字符“““
predict_results?=?[]????#存放預測的結果
card_screenshots?=?[]???#存放車牌截圖
fo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-25?13:05??視頻測試版7(換分揀算法)\
?????文件????38879926??2018-08-18?17:56??視頻測試版7(換分揀算法)\MOV_0973.avi
?????目錄???????????0??2019-03-25?12:55??視頻測試版7(換分揀算法)\__pycache__\
?????文件????????4672??2018-09-26?12:59??視頻測試版7(換分揀算法)\__pycache__\cardcharpredict.cpython-36.pyc
?????文件????????4648??2018-09-16?00:56??視頻測試版7(換分揀算法)\__pycache__\cardcharpredict.cpython-37.pyc
?????文件????????2148??2018-09-26?12:50??視頻測試版7(換分揀算法)\__pycache__\cardlocationpredict.cpython-36.pyc
?????文件????????2115??2018-09-01?18:24??視頻測試版7(換分揀算法)\__pycache__\cardlocationpredict.cpython-37.pyc
?????文件????????4489??2018-09-26?12:50??視頻測試版7(換分揀算法)\__pycache__\cardpictureprocessing.cpython-36.pyc
?????文件????????4419??2018-08-27?21:54??視頻測試版7(換分揀算法)\__pycache__\cardpictureprocessing.cpython-37.pyc
?????文件?????????845??2018-09-26?12:50??視頻測試版7(換分揀算法)\__pycache__\cardpredictor.cpython-36.pyc
?????文件?????????810??2018-09-07?02:17??視頻測試版7(換分揀算法)\__pycache__\cardpredictor.cpython-37.pyc
?????文件????????2271??2018-09-26?13:00??視頻測試版7(換分揀算法)\__pycache__\cardsetting.cpython-36.pyc
?????文件????????2236??2018-09-07?08:55??視頻測試版7(換分揀算法)\__pycache__\cardsetting.cpython-37.pyc
?????文件????????4003??2018-09-26?12:50??視頻測試版7(換分揀算法)\__pycache__\cardtrainmodel.cpython-36.pyc
?????文件????????3968??2018-09-07?02:17??視頻測試版7(換分揀算法)\__pycache__\cardtrainmodel.cpython-37.pyc
?????文件????????7673??2018-09-26?12:59??視頻測試版7(換分揀算法)\cardcharpredict.py
?????文件????????3301??2018-09-01?18:23??視頻測試版7(換分揀算法)\cardlocationpredict.py
?????文件????????5493??2018-08-27?21:25??視頻測試版7(換分揀算法)\cardpictureprocessing.py
?????文件????????1003??2018-09-07?02:17??視頻測試版7(換分揀算法)\cardpredictor.py
?????文件????????2846??2018-09-26?13:00??視頻測試版7(換分揀算法)\cardsetting.py
?????文件????????9001??2018-09-26?14:00??視頻測試版7(換分揀算法)\cardshiping.py
?????文件????????4356??2018-09-07?02:17??視頻測試版7(換分揀算法)\cardtrainmodel.py
?????目錄???????????0??2019-03-25?12:55??視頻測試版7(換分揀算法)\train_data\
?????文件?????5043949??2018-10-02?08:01??視頻測試版7(換分揀算法)\train_data\svm_chinese.dat
?????文件?????7531806??2018-10-02?08:02??視頻測試版7(換分揀算法)\train_data\svm_letterAnumber.dat
?????文件?????3780473??2018-10-02?08:02??視頻測試版7(換分揀算法)\train_data\svm_one_letter.dat
?????目錄???????????0??2019-03-25?13:11??視頻測試版7(換分揀算法)\train_picture\
評論
共有 條評論