李恒道 发表于 2024-12-9 00:17:34

【opencv练习】青果课程表文字提取(二)

调试发现用了canny反而不好,直接跑findContours可以识别出来全部内容
!(data/attachment/forum/202412/09/001104o8nittwtzk0r2cce.png)
我们可以利用面积进行过滤
复合面积的方块取左上和右下进行ocr
先取点画出来看看
```js
for i in range(len(contours)):
    area = cv2.contourArea(contours)
    if area > 500:
      x, y, w, h = cv2.boundingRect(contours)
      top_left = (x, y)
      bottom_right = (x + w, y + h)
      cv2.rectangle(originImage, top_left, bottom_right, (0, 0, 255), 2)
```
!(data/attachment/forum/202412/09/001231n6de9i0i12ieil11.png)
然后就是跑ocr的问题了
根据测试pytesseract 的效果并不是特别好
反而百度的paddle识别效果还不错
https://paddlepaddle.github.io/PaddleOCR/latest/ppocr/visualization.html#_3
直接初始化一下
```js
from paddleocr import PaddleOCR
logging.disable(logging.DEBUG)
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
```
然后在获取方块的时候得到ori图片进行ocr识别
```js
      text = ""
      for line in result:
            if line is not None:
                for word_info in line:
                  text += word_info
```
!(data/attachment/forum/202412/09/001619qkiifkzpip069a06.png)
可以发现图片内的内容都能一一对上
既有坐标又有文字
剩下的只是编码部分了
有心情再写吧
缅怀小米课程表
实际小米的处理肯定比我操作的更为复杂
一通操作下来只是怀念
既是怀念曾经的小米,也是纪念那个还热泪盈眶又笨笨的自己

Su. 发表于 2024-12-9 10:02:55

pytesseract 简直就是垃圾,我调用他识别验证码,成功率低得很,后来直接用了百度的api,但是又发现百度的api不如腾讯的准确率高

李恒道 发表于 2024-12-9 16:39:52

Su. 发表于 2024-12-9 10:02
pytesseract 简直就是垃圾,我调用他识别验证码,成功率低得很,后来直接用了百度的api,但是又发现百度的a ...

我用的百度本地模型,可以白嫖还好
腾讯好像没发布开源的

Su. 发表于 2024-12-9 20:20:32

李恒道 发表于 2024-12-9 16:39
我用的百度本地模型,可以白嫖还好
腾讯好像没发布开源的

不晓得,因为是自己用,所以就直接调的api,一个月免费1000次,够我用了,腾讯,百度都是一千次,阿里是200次
页: [1]
查看完整版本: 【opencv练习】青果课程表文字提取(二)