2022年 11月 9日

用python的OCR实现自动拍照搜题

学以致用系列

一.思路设计

最近两天因为要频繁刷一个题库,然后囿于时间的限制并且是在app里面做的练习,所以不能一边搜答案一边答题。这样的话凭本事做的话命中率一定会比较低。。。。。急中生智想了一个偷懒的方法。
1. 用电脑的模拟器打开手机上的那个app
2. 截取每一道问题的图片
3. 通过OCR把图里面的问题识别成文字
4. 把问题出来放在百度上面就可以查到答案了。

而且!!!!!以上都是可以用代码写出来的。

所以做每道题的时候需要以下几步,
1. 手动截图并运行代码,
2. 代码部分实现以下功能:识别图片中的问题—自动打开浏览器—在百度输入问题
3. 人工筛选出结果并选择答案

因为用python实现的,代码部分主要是需要搭建一个python中ocr的环境(ocr安装在这里:https://blog.csdn.net/sinat_37802274/article/details/80030063)。
每道题的答题时间是三十秒,上面三步完成基本是够的。(为了答题的命中率我也是蛮拼的了。。。)

二.实际操作如下:

1.截图的题干:

这里写图片描述
2.文字识别出来的结果:

这里写图片描述
3.然后自动打开百度并搜索:

这里写图片描述

三.其他

1.因为这个文字库是官方默认的,最近几天没有太多的时间给自己训练字库,所以识别出来的结果会比较飘。。。
2.每次截取图片都需要自己手动截图比较复杂,这个是后面可以加上自动截图的模块的。实现一键百度出结果的功能。
3.仔细想了想过年那段时间那么火的答题app也是可以用这个来实现“开挂”操作的。。。
4.部分代码如下

    def getanswer(self):
                text = pytesseract.image_to_string(Image.open('1.png'), lang='chi_sim')            #读取片及使用的文字识别类型
        text1=urllib.parse.quote(text)    #  转码成urlencode方便浏览器打开
        print(text)    #打印出识别的结果
        url="https://www.baidu.com/s?wd="+text1   #URL
        print(url)
        webbrowser.open(url)    #使用系统默认浏览器访问该URL
        return url
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8