gpt4 book ai didi

python - 如何显示带有枕头的图像并更新它?

转载 作者:行者123 更新时间:2023-12-03 19:53:01 24 4
gpt4 key购买 nike

我想显示从 img-vector 重新创建的图像,一切都很好。
现在我编辑 Vector 并希望显示新图像,并且每秒显示多次。
我的实际代码打开了大量窗口,其中包含新图片。

loop
{
rearr0 = generateNewImageVector()
reimg0 = Image.fromarray(rearr0, 'RGB')
reimg0.show()
}

我该怎么做才能只创建一个窗口并始终只显示新图像?

最佳答案

另一种方法是利用 OpenCV imshow() 函数,该函数将在窗口中显示 numpy 图像并在每次更新数据时重新绘制它。
请注意, OpenCV 是一个非常强大的安装工具,但也许您已经使用过它。所以,代码比我基于 pygame 的答案简单几英里,但是 OpenCV 的安装可能需要很多小时/天......

#!/usr/local/bin/python3
import numpy as np
import cv2

def sin2d(x,y):
"""2-d sine function to plot"""
return np.sin(x) + np.cos(y)

def getFrame():
"""Generate next frame of simulation as numpy array"""

# Create data on first call only
if getFrame.z is None:
xx, yy = np.meshgrid(np.linspace(0,2*np.pi,w), np.linspace(0,2*np.pi,h))
getFrame.z = sin2d(xx, yy)
getFrame.z = cv2.normalize(getFrame.z,None,alpha=0,beta=1,norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)

# Just roll data for subsequent calls
getFrame.z = np.roll(getFrame.z,(1,2),(0,1))
return getFrame.z

getFrame.z = None

while True:

# Get a numpy array to display from the simulation
npimage=getFrame()

cv2.imshow('image',npimage)
cv2.waitKey(1)
看起来像这样:
enter image description here

它非常流畅,在现实生活中没有“ strip ”效果,但 StackOverflow 上有 2MB 的限制,所以我不得不降低质量和帧速率以保持大小。

关于python - 如何显示带有枕头的图像并更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com