Mac 上使用 Tesseract OCR 识别图片文本

Tesseract OCR 引擎:Tesseract是一个开源的OCR引擎,你需要先安装它。可以从Tesseract官方网站(https://github.com/tesseract-ocr/tesseract)下载适用于你的操作系统的安装程序或源代码,并按照官方文档进行安装。

Tesseract OCR 对于低分辨率或模糊的图片可能无法准确识别。尝试使用更高分辨率和清晰度的图片来提高识别结果的准确性。对于 Mac 上的截图,一般都是很清晰的,所以这个缺点影响不大。

在 Mac 上,使用官网推荐的方式安装:

shell 复制代码
brew install tesseract

The tesseract directory can then be found using brew info tesseract, e.g.

bash 复制代码
/usr/local/Cellar/tesseract/5.3.2/bin/tesseract

demo:

python 复制代码
import pytesseract
from PIL import Image

# 可以写一个函数 crop_picture 将原图裁剪一下,只保留想要识别文本的部分,这样识别更加准确一些。
def crop_picture(picture_path, crop_box: list):
    """
    crap picture with crop_box
    :param picture_path: picture to be crapped
    :param crop_box: crop region, eg: [100, 200, 300, 350]
    :return: path of crapped picture
    """
    dirname = os.path.dirname(picture_path)
    basename = os.path.basename(picture_path)
    new_basename = ''.join([basename.split('.')[0], '_new.', basename.split('.')[1]])

    picture_origin = Image.open(picture_path)
    picture_origin_size = picture_origin.size
    if crop_box[2] is None:
        crop_box[2] = picture_origin_size[0]
    if crop_box[3] is None:
        crop_box[3] = picture_origin_size[1]
    picture_new = picture_origin.crop(tuple(crop_box))

    picture_new_path = os.path.join(dirname, new_basename)
    picture_new.save(picture_new_path)
    return picture_new_path

def get_text_from_picture(picture_path, crop_box: list):
    """
    get text from picture
    :param picture_path: picture to be crapped
    :param crop_box: crop region, eg: [100, 200, 300, 350]
    :return: text
    """
    pytesseract.pytesseract.tesseract_cmd = r'/usr/local/Cellar/tesseract/5.3.2/bin/tesseract'
    picture_new_path = crop_picture(picture_path, crop_box=crop_box)
    image = Image.open(picture_new_path)
    text = pytesseract.image_to_string(image, lang='eng')
    print(text)
    return text

if __name__ == '__main__':
    get_text_from_picture('my_picture_path', crop_box=[585, 360, None, 800])
相关推荐
小溪彼岸2 天前
macOS自带截图命令ScreenCapture
macos
TESmart碲视2 天前
Mac 真正多显示器支持:TESmart USB-C KVM(搭载 DisplayLink 技术)如何实现
macos·计算机外设·电脑
2501_915106322 天前
Xcode 上传 ipa 全流程详解 App Store 上架流程、uni-app 生成 ipa 文件上传与审核指南
android·macos·ios·小程序·uni-app·iphone·xcode
中科逸视OCR2 天前
当OCR遇见NLP:解析深度学习发票识别中的语义理解与关系抽取模块
nlp·ocr·发票识别
他们都不看好你,偏偏你最不争气3 天前
【iOS】AFNetworking
开发语言·macos·ios·objective-c
钟念3 天前
【打包app】uniapp打包ios端和安卓端app
macos·objective-c·cocoa
森之鸟3 天前
Mac电脑上如何打印出字体图标
前端·javascript·macos
m_136873 天前
Mac M 系列芯片 YOLOv8 部署教程(CPU/Metal 后端一键安装)
yolo·macos
搜狐技术产品小编20234 天前
CAEmitterLayer:iOS 中创建炫酷粒子效果的魔法工具
macos·ios·objective-c·cocoa
EkihzniY4 天前
OCR 识别技术:各行业信息化转型的 “加速器”
ocr