You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python-OpenCV中实现韩文输出?针对报错代码寻求解决方法

解决OpenCV putText无法打印韩文的问题

我帮你搞定这个韩文打印的问题!OpenCV自带的字体(比如cv2.FONT_HERSHEY_SIMPLEX)并不支持韩文字符集,所以直接用cv2.putText绘制韩文时会报错或者出现乱码。我们需要借助OpenCV的FreeType模块来加载支持韩文的字体文件,具体步骤如下:

步骤1:准备支持韩文的字体文件

你可以使用系统自带的韩文字体,比如Windows的malgun.ttf(路径一般是C:/Windows/Fonts/malgun.ttf),或者下载开源的韩文字体如Noto Sans KR。确保你知道字体文件的完整路径。

步骤2:替换原代码中的文本绘制逻辑

用OpenCV的FreeType模块加载字体,然后调用其putText方法来绘制韩文(以及其他字符)。修改后的代码如下:

import cv2

# 初始化FreeType字体加载器
ft = cv2.freetype.createFreeType2()
# 替换成你的韩文字体文件路径
font_path = 'C:/Windows/Fonts/malgun.ttf'  # Windows示例路径
# font_path = '/usr/share/fonts/truetype/noto/NotoSansKR-Regular.ttf'  # Linux示例路径
ft.loadFontData(fontFileName=font_path, id=0)

# 你的原有逻辑保持不变
if consecutive == 2 and res not in ['nothing']:
    if res == 'space':
        sequence += ' '
    elif res == 'del':
        sequence = sequence[:-1]
    else:
        cnt += 1
        sequence += res
        if cnt == 3:
            sequence = sequence[:-3]
            sequence += '안'
            cnt = 0
            consecutive = 0
            i += 1

# 替换原cv2.putText为FreeType的putText方法
# 绘制识别结果(英文/数字)
ft.putText(img=img,
           text=res.upper(),
           org=(100, 400),
           fontHeight=40,  # 字体大小(像素单位,对应原代码的缩放比例4)
           color=(255, 255, 255),
           thickness=4,
           line_type=cv2.LINE_AA,
           bottomLeftOrigin=False)

# 绘制分数
ft.putText(img=img,
           text=f'(score = %.5f)' % float(score),
           org=(100, 450),
           fontHeight=20,  # 对应原代码的缩放比例1
           color=(255, 255, 255),
           thickness=1,
           line_type=cv2.LINE_AA,
           bottomLeftOrigin=False)

# 如果需要绘制拼接后的sequence(包含韩文),同样用这个方法
ft.putText(img=img,
           text=sequence,
           org=(100, 500),
           fontHeight=30,
           color=(255, 255, 255),
           thickness=2,
           line_type=cv2.LINE_AA,
           bottomLeftOrigin=False)

# 原有后续逻辑保持不变
mem = res
cv2.rectangle(img, (x1, ...

关键注意事项

  • 字体路径:一定要替换成你本地实际的字体文件路径,否则会报错找不到字体。
  • 字体大小对应:FreeType的fontHeight参数是像素单位,和原cv2.putText的缩放比例参数不同,需要根据实际显示效果调整数值。
  • OpenCV版本:确保你的OpenCV版本支持FreeType模块,一般OpenCV 3.0以上版本默认包含该模块;如果没有,可能需要重新编译OpenCV并启用FreeType支持。

这样修改后,就能正常绘制韩文字符了,不会再出现报错的情况!

内容的提问来源于stack exchange,提问作者Jaemin jung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:09:36