斜体加半透明的字体怎么做到准确识别?

2018-01-16 14:35:35 +08:00
 a15017657065

http://imgsrc.baidu.com/forum/w%3D580/sign=18294ff4b81bb0518f24b320067bda77/2b310db30f2442a7686dbe73da43ad4bd0130261.jpg 想用 python+opencv 做一个守望先锋血量监控,语音报警脚本,雏形已经做出来了,但是识别率比较低,0 和 8 基本分不出来。上图是用 cv2.rectangle 框出来的。仔细一看发现这真是坑,斜体字也就算了,不光横坐标重叠,纵坐标居然还不一样......再加上是半透明的(图片虽然看不出来,但透明度不小),我突然感觉好像需要机器学习......

程序目前的思路是先手动测数字坐标,把 0 到 9 的样本图片截取到的矩阵二值化后,保存为二进制 bin 文件。再每个单独数字(二值化后)和所有样本文件对比一遍,相同像素点最多的样本判定为相同数字。

由于目标是程序能够 70ms 左右运行一次,所以还需要想办法提高运行效率...求有没有什么既能提高识别率计算量又不会太高的好办法?

1547 次点击
所在节点    Python
3 条回复
oott123
2018-01-16 14:42:14 +08:00
正经办法不是读内存吗(

话说没玩过守望先锋,想问这个血量的位置是不固定的吗?不能固定把位置标出来,非要学习吗?
a15017657065
2018-01-16 17:21:05 +08:00
@oott123 位置是固定的,但是手动可能很难精确到 3 位像素以内。不过我是绝对不想用机器学习来弄这玩意的,先试试别的方法。
AvenirX
2018-01-17 10:41:26 +08:00
按血条平行四边形的角度在数字周围选 4 个顶点,按这四个顶点做一个透视变换。数字可能更好识别?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/423321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX