返回

以python遍历文件系统图片,繁转简,so easy!

前端

前阵子突然需要处理一批图片中的文字,图片文字主要是繁体,需要转成简体中文。起初,面对几百张图片和大量繁体文字,想到就头疼。但后来仔细想想,图片文字识别不正是计算机视觉的常见任务之一吗?于是便有了用python处理这批图片的想法。

在调研了很多方案后,我发现可以通过结合图像识别和图像处理技术来实现繁体文字转简体。具体的步骤如下:

  1. 使用图像识别技术提取图片中的文字。
  2. 将识别出的繁体文字转换成简体文字。
  3. 将转换后的简体文字重新写入图片中。

说干就干,参考之前搜集的资料,大致有些思路,但有一些比较难搞的点,没有现成的方案可以借鉴,只能自己动手了。

第一步,使用图像识别技术提取图片中的文字。我使用的是PaddleOCR库,它是一个开源的图像识别库,可以非常方便地提取图片中的文字。

import paddleocr

# 初始化OCR识别器
ocr = paddleocr.PaddleOCR(lang="ch")

# 遍历文件系统中的图片
for file_name in os.listdir(path):
    # 读取图片
    image = cv2.imread(os.path.join(path, file_name))

    # 使用OCR识别图片中的文字
    result = ocr.ocr(image)

    # 将识别出的文字提取出来
    text = result[0][1][0]

第二步,将识别出的繁体文字转换成简体文字。我使用的是jieba库,它是一个开源的中文分词库,可以非常方便地将繁体文字转换成简体文字。

import jieba

# 将识别出的繁体文字转换成简体文字
text = jieba.繁转简(text)

第三步,将转换后的简体文字重新写入图片中。我使用的是Pillow库,它是一个开源的图像处理库,可以非常方便地将文字写入图片中。

from PIL import Image, ImageDraw, ImageFont

# 创建一个新的图片对象
image = Image.new("RGB", (width, height), (255, 255, 255))

# 创建一个画笔对象
draw = ImageDraw.Draw(image)

# 设置字体
font = ImageFont.truetype("simhei.ttf", size)

# 将简体文字写入图片中
draw.text((x, y), text, font=font, fill=(0, 0, 0))

# 保存图片
image.save(os.path.join(output_path, file_name))

就这样,我实现了繁体文字转简体。整个过程非常简单,而且效果也非常不错。如果你也需要处理类似的任务,不妨试试这个方法吧!