Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以显示/集成numpy阵列和PIL?_Python_Numpy_Opencv - Fatal编程技术网

Python 是否可以显示/集成numpy阵列和PIL?

Python 是否可以显示/集成numpy阵列和PIL?,python,numpy,opencv,Python,Numpy,Opencv,我已经在这里问了两次了,但都没有得到回应。那么第三次可能很幸运 如何使用PIL显示numpy数组?我正在尝试将泰晤士报新罗马字体与PIL结合使用,我需要在使用numpy数组制作的空白屏幕上显示字符 如果我使用内置的cv2.putText函数,那么它可以正常工作,如下所示: cv2.putText(blackboard, text, (4, y), cv2.FONT_HERSHEY_COMPLEX, 2, (255, 255, 255)) 输出: 但由于我必须使用泰晤士报新罗马版,我使用了PIL

我已经在这里问了两次了,但都没有得到回应。那么第三次可能很幸运

如何使用PIL显示numpy数组?我正在尝试将泰晤士报新罗马字体与PIL结合使用,我需要在使用numpy数组制作的空白屏幕上显示字符

如果我使用内置的cv2.putText函数,那么它可以正常工作,如下所示:

cv2.putText(blackboard, text, (4, y), cv2.FONT_HERSHEY_COMPLEX, 2, (255, 255, 255))
输出:

但由于我必须使用泰晤士报新罗马版,我使用了PIL图书馆

代码:

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()中定义如下:

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()

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


有什么帮助吗?

您正在从
黑板
numpy数组创建一个PIL图像并绘制到它,但您没有将结果写回numpy数组。尝试在
函数的末尾添加
return np.array(black)
将拆分的文本放入黑板中,并在程序的其余部分使用该函数。

您能显示结果图像吗?我看不到您对此提出的任何老问题。您使用了其他用户名吗?@Sunreef我在原始帖子中添加了输出图像。@ArndtJonasson两天没有收到回复,所以我只是删除了它并发布了一个新的。我添加了这行,但现在好像
blackboard
数组在我获取
局部变量“blackboard”时返回空值未使用
@ShibeshDuwadi我编辑了我的答案以更正它。告诉我这是否有效。不,仍然有一个空白屏幕。