TextRecognitionDataGenerator小语种字符串分离解决办法

发布于:2022-12-26 ⋅ 阅读:(679) ⋅ 点赞:(0)

先说问题

生成是这样的

实际是这样的

 ကကြီး

看了作者源码后修改之后把问题解决了,作者绘制每一个char而不是整个string

在 computer_text_generator.py 文件中

_generate_horizontal_text 函数和  _generate_vertical_text 函数


     for i, p in enumerate(splitted_text):
        txt_img_draw.text(
             (sum(piece_widths[0:i]) + i * character_spacing * int(not word_split), 0),
             p,
             fill=fill,
             font=image_font,
             stroke_width=stroke_width,
             stroke_fill=stroke_fill,

         )
         txt_mask_draw.text(
             (sum(piece_widths[0:i]) + i * character_spacing * int(not word_split), 0),
             p,
             fill=((i + 1) // (255 * 255), (i + 1) // 255, (i + 1) % 255),
             font=image_font,
            stroke_width=stroke_width,
            stroke_fill=stroke_fill,
 
        )

替换为

txt_img_draw.text(
        (0, 0),
        splitted_text,
        fill=fill,
        font=image_font,
        stroke_width=stroke_width,
        stroke_fill=stroke_fill,
        #language="my"
    )
    txt_mask_draw.text(
        (0, 0),
        splitted_text,
        fill=(255, 255, 255),
        font=image_font,
        stroke_width=stroke_width,
        stroke_fill=stroke_fill,
        #language="my"
    )

另外,如果发现生成的图片和标签不一致,很有可能是字体的原因

fd 是指定字体文件夹,生成的图片什么字体都有

# -fd

# .\fonts\my


这个是指定字体

# -ft

# ./fonts/my/Pyidaungsu.ttf

如果还不行,可以在代码里面添加txt_mask_draw.text 方法中添加 language 参数

各国语言对应的代码是xml 版本的

我们可以打开一个网页,然后查看网页源代码,我是缅甸语可以去这个网站အမျိုးသားညီညွတ်ရေးအစိုးရ (NUG) (nugmyanmar.org)

如果使用了language 参数会提示让你安装Libraqm,按照下面这个方法安装

python - Installing Raqm (Libraqm) Windows 10 - Stack Overflow

 这是“here”的链接

 Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu)

 我多次部署发现缅甸语印地语等就是要装这个库

缅甸语字体下载

Myanmar Fonts: Unicode, Zawgyi, Pyi Daung Su Download (myanmarhouse.com.mm)

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到