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

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)

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

发布了81 篇原创文章 · 获赞 22 · 访问量 7699

猜你喜欢

转载自blog.csdn.net/qq_38883271/article/details/103623667