【图像算法】pytesseract简单实现图片数字识别

【前置目的】
识别视频中是否包含目标元素;
抽象自动化,就是处理一段含有时间戳的视频;
再核心就是对视频进行图片裁减,识别出图片中的数字,做数学计算延时。

【学习地址】
环境:mac、python3、pytesseract库
关键语句:pytesseract.image_to_string 基本语言库,可支持汉子和数字的识别
后续就是OCR流程

  1. 机器学习

  2. 图像预处理:去噪、灰度化、图像增强等

  3. 文本检测: 滑动窗口算法遍历整张图片

  4. 字符分类: 划分单个字符,识别单字

【图片例子】
time1.png
【图像算法】pytesseract简单实现图片数字识别_第1张图片time2.png
【图像算法】pytesseract简单实现图片数字识别_第2张图片
time3.png【图像算法】pytesseract简单实现图片数字识别_第3张图片time4.png
【图像算法】pytesseract简单实现图片数字识别_第4张图片
eng.png
【图像算法】pytesseract简单实现图片数字识别_第5张图片

【代码实现】

import pytesseract

def seek_num():
    text1 = pytesseract.image_to_string(Image.open("time1.png"), lang='eng')
    print(text1)
识别结果:

['ITE AY (8)\n\nbe\n\n20224712 A308\n\n']
['14:08:01\n']
['14:19:17\n\nFriday, 30 December 2022\n']
['14:56:10\n']
['nn BWNY\n\nWriting a Closing\n\nWrapping Up\n\nSummarize\n\nCheck for agreement\n\nReminders\n\nThank You / congratulations/ personal messages\n\nFollow Ups\n']

查看本地语言库支持的类型目录
cd /opt/homebrew/share/tessdata/

本地支持更高低点语言库,比如lang='chi_sim’等
https://github.com/tesseract-ocr/tessdata

【延伸问题】

  1. pytesseract对代测图片的内容要求很高,一般带有点文字内容会识别出数字!!!
  2. 视频每帧输出成图片

ffmpeg -i input.mp4 -r 1 -s 1280,720 -ss 00:00:00 %d.png

  1. 需要用ffmpeg对图片大小进行裁剪,才难识别出具体的数字

ffmpeg -i input.png -vf crop=600:170:330:570 outpit.png

crop=W:H:X:Y参数说明
W:输出视频的宽度
H:输出视频的高度
X:开始裁剪的水平位置,从左边开始(绝对左距为0)。默认为中心(iw-ow)/2
Y:开始裁剪的垂直位置,从视频的顶部开始(绝对顶部为0)。默认为中心(ih-oh)/2

(也可以在视频剪切成每张图片之前先对视频进行裁剪)

  1. 对输出的内容进行替换,可能存在标点符号的问题
    (勉强可用,支持了我的诉求~)

你可能感兴趣的:(音视频,python)