首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以用PIL显示/集成numpy数组吗?

可以用PIL显示/集成numpy数组吗?
EN

Stack Overflow用户
提问于 2018-06-19 14:59:27
回答 1查看 90关注 0票数 0

我已经在这里问了两次了,都没有得到回应。所以第三次幸运是不是?

如何使用PIL显示numpy数组?我正在尝试使用PIL的Times New Roman字体,我需要在一个使用numpy数组的空白屏幕上显示字符。

如果我使用内置的cv2.putText函数,那么它的工作方式如下:

代码语言:javascript
复制
cv2.putText(blackboard, text, (4, y), cv2.FONT_HERSHEY_COMPLEX, 2, (255, 255, 255))

输出:output1

但由于我必须使用Times New Roman,所以我使用了PIL库。

代码:

代码语言:javascript
复制
def put_splitted_text_in_blackboard(blackboard, splitted_text):
y = 200
blackb = Image.fromarray(blackboard)
draw = ImageDraw.Draw(blackb)
for text in splitted_text:
    fonts = ImageFont.truetype('Times New Roman.ttf', 50, encoding='unic')
    draw.text((4, y), text, font=fonts, fill=(255, 255, 255))
    y += 50

numpy数组在recognize()中定义如下:

代码语言:javascript
复制
blackboard = np.zeros((480, 640, 3), dtype=np.uint8)
    splitted_text = split_sentence(text, 2)
    put_splitted_text_in_blackboard(blackboard, splitted_text)
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
    res = np.hstack((img, blackboard))
    cv2.imshow("Recognizing gesture", res)
    cv2.imshow("thresh", thresh)
    if cv2.waitKey(1) == ord('q'):
        break


keras_predict(model, np.zeros((50, 50), dtype=np.uint8))
recognize()

当我运行这个模块时,程序执行得很好,但是我看不到空白屏幕上的文本。

输出:Output2

有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 15:17:36

您正在从numpy Numpy数组创建一个blackboard图像并对其进行绘制,但是没有将结果写回Numpy数组。尝试在put_splitted_text_in_blackboard函数的末尾添加return np.array(blackb),并在程序的其余部分中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50922355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档