机器视觉 车牌字符切割

机器视觉:车牌字符切割实战
本次实验旨在通过机器视觉技术进行车牌字符的切割。实验过程中,首先编写代码进行图像预处理,包括灰度变化、二值化、反色等步骤。接着,利用水平和垂直投影确定字符位置并标示。在遇到参考博客方法无法有效去除车牌铆钉的问题时,通过调整阈值和描黑非字符区域解决了问题,最终得到干净的车牌图像。实验总结中提到,运用跳变次数法成功去除车牌边框和铆钉,深入理解了车牌切割的完整流程。

1.实验目的

利用opencv python实现对下图车牌进行字符切割。实验包括:灰度变化、图像反色、转成二值图、水平投影、垂直投影、字符切割和矩形标示等。

在这里插入图片描述

2.实验过程

(1)编写代码

代码如下:

import cv2
import numpy as np

dst=cv2.imread("carplate.png")
plate_original = dst.copy()
cv2.imshow("yuantu", dst)

#高斯滤波
img_aussian = cv2.GaussianBlur(dst,(5,5),1)
#中值滤波
dst = cv2.medianBlur(img_aussian,3)


# 灰度化
gray = cv2.cvtColor(dst, cv2.COLOR_BGR2GRAY)
cv2.imshow('gray',gray)

#二值化处理,低于阈值的像素点灰度值置为0;高于阈值的值置为参数3
ret,thresh1 = cv2.threshold(gray,180,255,cv2.THRESH_BINARY)
cv2.imshow('threshold',thresh1)

gray=thresh1.copy()
LICENSE_HIGH,LICENSE_WIDTH=gray.shape

#-------------------------------跳变次数去掉铆钉和边框----------------------------------
times_row = []  #存储哪些行符合跳变次数的阈值
for row in range(LICENSE_HIGH): # 按行检测 白字黑底
    pc = 0
    for col in range(LICENSE_WIDTH):
        if col != LICENSE_WIDTH-1:
            if gray[row][col+1] != gray[row][col]:
                pc = pc + 1
    times_row.append(pc)


#找车牌的下边缘-从下往上扫描
row_end = 0
row_start = 0
for row in range(LICENSE_HIGH-2):
    if times_row[row] <10:
        continue
    elif times_row[row+1] <10:
        continue
    elif times_row[row+2] <10:
        continue
    else
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值