我遇到了一个问题,当我使用我的手时,我试图输出亚美尼亚字母,这是手语应用程序。那么,我就得到了“??”为什么要签一封信。我相信opencv的putText()既不受欢迎,也不存在问题,也可能没有正确的实现方式。请帮帮忙。谢谢!
这是我的代码:
dict_letter = {0: 'Ա', 1: 'Բ', 2: 'Գ', 3: 'Դ', 4: 'Ե', 5: 'Զ', 6: 'Է', 7: 'Ը', 8: 'Թ', 9: 'Ժ', 10: 'Ի', 11: 'Լ', 12: 'Խ', 13: 'Ծ', 14: 'Կ', 15: 'Հ',
16: 'Ձ', 17: 'Ղ', 18: 'Ճ', 19: 'Մ', 20: 'Յ', 21: 'Ն', 22: 'Շ', 23: 'Ո', 24: 'Չ', 25: 'Պ', 26: 'Ջ', 27: 'Ռ', 28: 'Ս', 29: 'Վ', 30: 'Տ', 31: 'Ր',
32: 'Ց', 33: 'Փ', 34: 'Ք', 35: 'Ֆ'}
img = cv2.putText(image_hand,
f"{dict_letter[pred]} - {str(probabs)}",
(x_square, y_square - 5), cv2.FONT_HERSHEY_SIMPLEX,
0.6, (0,0,0), 2)使用枕头:
cv2_im_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pil_im = Image.fromarray(cv2_im_rgb)
draw = ImageDraw.Draw(pil_im)
# Choose a font
font = ImageFont.truetype("/arnamu.ttf", 50)
# Draw the text
draw.text((0, 0), dict_letter[pred], font=font)发布于 2022-04-06 00:15:07
内置矢量字体不随这些字形而来。或者至少你不能依赖这个。有些unicode有好时矢量字体的扩展。我不知道OpenCV是否带着这些。
您可以从freetype存储库中尝试contrib模块。它也有虫子。从右到左的脚本被破坏了。随机用法示例:https://github.com/opencv/opencv/issues/14579 (createFreeType2,在实例上使用loadFontData,然后使用.putText)
在OpenCV v5 (尚未发布日期)中,将提供适当的字体支持。
发布于 2022-04-06 00:30:06
putText()函数在OpenCV中使用好时字体。这是好时可用字符的全套。如果您的特殊语言字符在集合中不可用,这意味着这就是它不能工作的原因。
下面是如何使用枕头来添加文本而不是OpenCV。
from PIL import Image
from PIL import ImageDraw
# Open an Image
img = Image.open('my_img.png')
I1 = ImageDraw.Draw(img)
# Add Text to image
I1.text((28, 36), "nice image", fill=(255, 0, 0))
# Display edited image
img.show()
# Save the edited image
img.save("my_img2.png")https://stackoverflow.com/questions/71759723
复制相似问题