• 大小: 41.07MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-30
  • 语言: Python
  • 标签: python  车牌识别  

资源简介

下载解压后安装必要的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 < H <= 34 and S > 34: #图片黄色部分像素总和
yello += 1
elif 35 < H <= 99 and S > 34: #图片绿色部分像素总和
green += 1
elif 99 < H <= 124 and S > 34: #图片蓝色部分像素总和
blue += 1
if 0 < H <180 and 0 < S < 255 and 0 < V < 46:   #再计算白色和黑色字体部分的颜色像素总和
black += 1
elif 0 < H <180 and 0 < S < 43 and 221 < V < 225:
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\

评论

共有 条评论