0
我目前正在尝试从视频中采用帧(使用openCV2),然后使用Kivy在应用中显示它们。由于不同的图像格式,我不得不求助于将图像从openCV2保存到磁盘,然后在Kivy中读取它,这是一个不雅的解决方案,偶尔会导致崩溃(其中Kivy部分尝试访问图像完成之前完成存储)将OpenCV2图像转换为Kivy纹理
我试图直接传递图像,没有涉及光盘访问。目前,我试图将图像从openCV2使用cv2.imencode保存到缓冲区中,然后将缓冲区转换成使用Texture.blit_buffer
此刻kivy质感,图像提取的样子:
video = cv2.VideoCapture(videourl)
success, image = video.read()
success2, buffer = cv2.imencode('.jpg', image)
而纹理制作的样子:
tex = Texture.create()
tex.blit_buffer(buffer, colorfmt='rgb', bufferfmt='ubyte')
然而
,我已经得到了以下错误:
ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
因此,我猜测它期望数组是1维的。我只需要将openCV2图像(将其存储为numpy n维数组)转换为单维数组?如果是这样,我还需要做些什么来确保图像正确复制?
在此先感谢,
啊,它确实,谢谢。 –