python识别车辆图片_python-opencv图像处理之车牌识别+区域划分+车牌提取+保存图片(...

话不多说,先上效果图:

把车牌的每一个字母和数字都完美的分开,并保存在想保存的区域。车牌区域的划分详见我的另一个博客:python-opencv图像处理之基于HSV、面积、角度的车牌定位里面讲的比较详细。

在得到我们要的车牌之后,我们要把此区域提取出来,因为照片就是矩阵,所以我们可以通过

license_image = new_img[round( c ):round(d), round(a):round(b)]

的方式提取出车牌,但是要注意rect[2]这个角度,否则的话,有可能提取的是竖着的,不是横着的。

接着进行车牌的放大和二值化,二值化选用的参数要根据车牌识别的情况进行调整,也就是其中的160这个数值,需要按情况调整。

ret, license_image_erzhi = cv2.threshold(license_image_gray, 160, 255,

cv2.THRESH_BINARY)

然后进行腐蚀和膨胀

img_erode = cv2.erode(license_image_erzhi, kernel, iterations=1)

img_dilated = cv2.dilate(img_erode, kernel, iterations=2)

腐蚀和膨胀的次数也要进行调整,一般都不超过4。

接着就是你要保存的路径,os操作

在轮廓提取中,提取出的是车牌数字和字母在二值化图像中的位置信息,构成数组,由起始点的横坐标和纵坐标,以及高和宽构成。

设置count参数记录个数,正常是7个,但也有可能多或者少,可以根据面积参数进行筛选。

location_list.append((x,y,w,h))

用来向数组添加参数

要根据车牌从左往右的顺序提取车牌,所以还要进行排序

def takefirst(elem):

return elem[0]#指定第一个元素排序

location_list.sort(key=takefirst)

排序完成之后就可以进行车牌的再次切割和保存了,并在二值图上标出

for i in range(0, count):

license_image_1 = img_dilated[ location_list[i][1] :location_list[i][1] + location_list[i][3], location_list[i][0] : location_list[i][0]+location_list[i][2]] file_name = 'img' + str(i) + '.jpg'

cv2.imwrite(path + file_name, license_image_1)

cv2.rectangle(license_image_erzhi, (location_list[i][0], location_list[i][1]-10), (location_list[i][0] + location_list[i][2], location_list[i][1] + location_list[i][3]), (255, 255, 255), 4)

接下来给出完整代码:

from cv2 import cv2

import numpy as np

import os

lower_blue = np.array([90,90,0])

upper_blue = np.array([120,210,250])

img = cv2.imread('d:/Python/license plate/chepai/7.jpg')

n = 0.8

sp = img.shape

height = round(n*sp[0])

weight = round(n*sp[1])

new_img = cv2.resize(img,(weight,height))

cv2.imshow('new_img',new_img)

hsv = cv2.cvtColor(new_img, cv2.COLOR_BGR2HSV)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值