Opencv学习记录【九】———芯片字符分割、车牌字符分割

车牌识别算法流程

1、分类器(adboost方法)得到含有车牌的rect(或传统的找轮廓方法)
2、颜色阈值,筛选出正确的车牌区域
3、直方图统计,精确定位字符区域
4、字符分割
5、字符识别

本文记录基于直方图像素统计进行芯片字符分割和车牌字符分割,两种场景不同但方法相似。

☞ 芯片字符区域的提取

在这里插入图片描述在这里插入图片描述
0 ——mask0 ,基于颜色阈值法+找轮廓实现
mask0——mask1,全局矩阵腐蚀算法,定义一个合适大小的矩阵,遍历扫描,扫描到矩阵平均像素值小于一定值,就全部赋值0。
mask1——mask2,边界腐蚀算法,定义一个偏大的矩阵,只扫描四个边界,如果满足平均像素值大于一定值,则赋值0,然后内层扫描都同上一次操作,完成该层后该边界扫描完成。(代码在后面贴出)
mask2——result ,通过边界扫描,确定roi范围。
下面贴出两个腐蚀算法的实现:

#全局腐蚀算法,可优化为边界腐蚀
@jit
def scan_rect(img,w,h,thred):

	deal_img = img.copy()
	#print(deal_img.shape)
	for x in range(0,deal_img.shape[1]-w):
		for y in range(0,deal_img.shape[0]-h):
			#sum_pixels = np.sum(deal_img[x:x+w,y:y+h])
			my_mean = np.mean(deal_img[y:(y+h),x:(x+w)])
		#	print(deal_img[y,x],my_mean)
			if  my_mean < thred:
				img[y:(y+h),x:(x+w)] =  np.zeros(deal_img[y:(y+h),x:(x+w)].shape).copy()
	return  img

#边界腐蚀算法,返回腐蚀好的矩形原图(芯片区域是白色)
#矩阵扫描(大一点)
@jit
def erode_rect(rect,binary,w,thred):

	h = w
	flag_jump = 0
	deal_i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值