python利用opencv对识别到的车牌号进行分割

本文介绍了一种车牌识别预处理方法,通过高斯模糊、灰度转换、Otsu阈值二值化等步骤增强图像对比度。采用图像取反去除周围黑框,最后对车牌号进行精确分割,为后续字符识别做准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
image=cv.imread("G:\\IDLE\\chepai.jpg")
img=cv.GaussianBlur(image.copy(),(5,5),9)
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
revImg=cv.bitwise_not(binary)    #二值图像取反
imgShape=revImg.shape
height=imgShape[0]
width=imgShape[1]
num=0
for i in range(height):       #去除图像周围的黑框
     for j in range(width):
          if 0<i<45 and revImg[i,j]==0:
               revImg[i,j]=255
          elif height-10<i<height and revImg[i,j]==0:
               revImg[i,j]=255
          elif (height-height/3)<i<height and 0<j<20 and revImg[i,j]==0:
               revImg[i,j]=255
          elif (height-height/3)<i<height and width-20<j<width and revImg[i,j]==0:
               revImg[i,j]=255
i=5
j=1
while num!=7:              #对车牌号进行分割
     #plt.subplot(1,7,j)
     if 2<=num<3:
          #plt.imshow(revImg[:,i:i+170])
          cv.imwrite("G:\\detect\\chepai"+str(j)+".jpg",revImg[:,i:i+170])
          #plt.xticks([])
          #plt.yticks([])
          i=i+170
     else:
          #plt.imshow(revImg[:,i:i+120])
          cv.imwrite("G:\\detect\\chepai"+str(j)+".jpg",revImg[:,i:i+120])
          #plt.xticks([])
          #plt.yticks([])
          i=i+120
     j=j+1
     num=num+1
#plt.show()
#cv.imshow("revImg",revImg)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值