2021-07-08

本文介绍了在山东大学暑期项目中,通过论文指导改进箱号识别,运用腐蚀、膨胀等形态学操作对字符图像进行处理,提升识别精度。步骤包括腐蚀瘦身、中值滤波去干扰、膨胀恢复细节、二值化增强对比度,以及开闭运算优化。
摘要由CSDN通过智能技术生成

山东大学暑期项目实训(五)

小组处理完部分图片后,发现效果并不理想,于是又去看了论文看看有没有新思路,没想到还真给我发现了一些,以下内容根据所看到的论文方法进行的归纳,论文参考基于卷积神经网络的箱号识别技术【python-opencv】17-形态学操作-腐蚀与膨胀

1.字符处理之腐蚀处理

得到的字符结果显示不明显,由于末尾的白框会影响字符的识别,为了提高识别的精确度,对分割后的末尾字符图像进行进一步处理。首先对末尾图像进行腐蚀处理。
  1. 腐蚀原理:腐蚀的效果是把图片"变瘦",其原理是在原图的小区域内取局部最小值。因为是二值化图,只有0和255,所以小区域内有一个是0该像素点就为0在这里插入图片描述
    这样原图中边缘地方就会变成0,达到了瘦身目的
    OpenCV中用cv2.erode()函数进行腐蚀,只需要指定核的大小就行:
img = cv2.imread('j.bmp', 0)
kernel = np.ones((5, 5), np.uint8)
erosion = cv2.erode(img, kernel)  # 腐蚀

这个核也叫结构元素,因为形态学操作其实也是应用卷积来实现的。
结构元素可以是矩形/椭圆/十字形,可以用cv2.getStructuringElement()来生成不同形状的结构元素,比如:

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))  # 矩形结构
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))  # 椭圆结构
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))  # 十字形结构

2.字符处理之中值滤波处理

  1. 腐蚀过后的图像无论是箱号字符还是边框都只剩下骨架,有些边框甚至已经看不清了。之后再用中值滤波对图像进行过滤进一步去除干扰
    在这里插入图片描述

3.字符处理之膨胀处理

  1. 膨胀与腐蚀相反,取的是局部最大值,效果是把图片"变胖":
dilation = cv2.dilate(img, kernel)  # 膨胀

4.膨胀之后的操作——继续二值化

经过膨胀过后,图像已经基本恢复了其原有的大小,但对比度还有待提升,为了
提升对比度,可以对图像进行二值化处理,一般图像进过二值化处理后,强显示
的地方会更强,而弱显示的地方将会更弱,即强者更强,弱者更弱,这样就可以
突出图像中需要获取的信息

5.开/闭运算

5.1开操作=腐蚀+膨胀,其作用是:分离物体,消除小区域。这类形态学操作用cv2.morphologyEx()函数实现:

在这里插入图片描述

5.2闭运算= 先膨胀+腐蚀(先膨胀会使白色的部分扩张,以至于消除/"闭合"物体里面的小黑洞,所以叫闭运算)

在这里插入图片描述

5.3二者作用

在这里插入图片描述

6.总结

感谢论文参考[基于卷积神经网络的箱号识别技术]和【python-opencv】17-形态学操作-腐蚀与膨胀提供的思路,图像字符处理后期希望能找到更优化的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值