ubuntu 图片文字识别

仅限个人学习所用

第一次用博客写东西,有点不习惯,如果我的代码存在什么错误,欢迎留言,互相探讨。

安装我不详细讲,只说我踩的坑

1.安装完pillow-> tesseract -> pytesseract 后,一定要记得下载自己需要的需要包
2.tesseract自带有一个"eng"的包,如果需要转中文,可以到"https://github.com/tesseract-ocr/tessdata" [上述地址为转载地址]进行下载,我自己下了一个"chi_sim_vert.traineddata"转中文的训练包
3.打开终端,cd到你下载的文件下,将该文件移动到"/usr/share/tesseract-ocr/4.00/tessdata"文件夹下,命令 : “sudo mv aze.traineddata /usr/share/tesseract-ocr/4.00/tessdata”

看源码

from PIL import Image
import pytesseract


class CharaterRecognition(object):
def __init__(self, image_file, threshold=127):
    self.img = image_file
    print(self.img)
    self.threshold = threshold

# 二值化图像
def _erzhihua(self):
    # 读取图片
    img = Image.open(self.img)
    # 二值化处理[非黑即白]
    image = img.convert('L')
    # 进行二分定值[转化为两种结果:0/1]
    table = []
    for i in range(256):
        if i < self.threshold:
            table.append(0)
        else:
            table.append(1)
    return image.point(table, '1')

# 图片文字获取
def get_character(self):
    """
    返回图片识别出的文字
    :return:
    """
    result_img = CharaterRecognition._erzhihua(self)
    # 图片展示
    result_img.show()
    # 图片内容
    content = ''
    try:
        # 识别图片,获取文字
        # print("开始识别图片",'测试调节用!!!')
        content = pytesseract.image_to_string(result_img, lang='chi_sim')
    except Exception as e:
        print("传入格式不对,或者传入的不是图片")
    return content

cha = CharaterRecognition(‘c1.jpg’)
text = cha.get_character()
print(text)

图片的识别正确率不高,但是作为学习用应该够了

在 Python 中,你可以使用 OCR 技术从图片中提取文字。OCR 是 Optical Character Recognition 的缩写,即光学字符识别。Python 中有许多 OCR 库可以使用,其中最常用的是 Tesseract。 以下是一些使用 Python 和 Tesseract 进行 OCR 的步骤: 1. 安装 Tesseract 在安装 Tesseract 之前,你需要安装一些依赖项。这些依赖项在不同的操作系统上可能不同。在 Ubuntu 中,你可以使用以下命令安装它们: ``` sudo apt install tesseract-ocr libtesseract-dev libleptonica-dev ``` 在 Windows 中,你可以从 Tesseract 的官方网站下载安装程序:https://github.com/UB-Mannheim/tesseract/wiki 2. 安装 pytesseract 库 pytesseract 是一个 Python 模块,它提供了与 Tesseract 的接口,以便在 Python 中使用它。你可以使用以下命令安装: ``` pip install pytesseract ``` 3. 从图片中提取文字 下面是一个简单的 Python 代码示例,它使用 pytesseract 库从图片中提取文本: ```python import pytesseract from PIL import Image # 打开图片 img = Image.open('image.png') # 使用 pytesseract 识别文本 text = pytesseract.image_to_string(img, lang='eng') print(text) ``` 在这个示例中,'image.png' 是要识别的图片的文件名。`image_to_string()` 函数将图片作为输入,并返回从图片中提取的文本。lang 参数指定要使用的语言。在这里,我们使用了英语。你可以根据需要更改它。 这就是使用 Python 从图片中提取文本的基本步骤。当然,这只是一个简单的示例。在实际应用中,你可能需要进行更多的图像处理和文本清理,以获得更准确的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值