希望读取以保存在sd卡中的mjpg格式视频到IDE屏幕上显示,但是一直显示找不到文件,改如何解决?
-
# Image Memory Stream I/O Example # # 本例程演示如何使用ImageIO流在内存中记录帧并进行回放。 # 注意:虽然这在任何板上都可以使用,但是板上应该有一个SDRAM可以使用。 import sensor, image, time # 要预分配和记录的帧数 N_FRAMES = 500 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) # 该帧大小必须与传递给ImageIO的图像大小匹配 sensor.set_windowing((120, 120)) sensor.skip_frames(time = 2000) clock = time.clock() # 打开MJPEG格式的视频文件并创建 ImageIO 对象 video = image.ImageIO("xunxian6.1.mjpeg", "r") stream = image.ImageIO((120, 120, 2), video.get_frame_count()) # 将视频中的每个帧写入图像流对象 for i in range(0, video.get_frame_count()): # 读取视频中的下一帧并将其转换为OpenMV图像对象 img = video.next_frame(copy_to_fb=True) # 将图像写入图像流对象 stream.write(img) # 回放流并以100FPS播放 stream.seek(0) for i in range(0, stream.get_length()): img = stream.read(copy_to_fb=True) # 在此处对图像执行机器视觉算法 time.sleep_ms(10)
这是装在openmv上的sd卡内容,在电脑运行在video = image.ImageIO("xunxian6.1.mjpeg", "r")那行OSError: Unexpected value read!错误,麻烦帮忙看看如何解决
然后尝试将文件电脑文件夹中运行也是相同的错误
于是向用读取二进制视频的代码录取视频再读取# 读取二进制视频示例 # # 此示例需要使用uSD内存卡 # # 本示例说明如何使用“图像读取器Image Reader”对象重放由“图像写入器Image Writer”对象保存的OpenMV所看到的图像以测试机器视觉算法。 # 更改为允许从SD卡全速读取,以将序列提取到网络等。 # 将新的暂停参数设置为false import sensor, image, time snapshot_source = False # 一旦完成从传感器提取数据,将其设置为true。 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QQVGA) sensor.skip_frames(time = 2000) clock = time.clock() stream = None if snapshot_source == False: stream = image.ImageIO("/stream.bin", "r") while(True): clock.tick() if snapshot_source: img = sensor.snapshot() else: img = stream.read(copy_to_fb=True, loop=True, pause=True) # 在此处对图像执行机器视觉算法。 print(clock.fps())
但是显示AttributeError: 'module' object has no attribute 'ImageReader',我的openmv是MV4 PLUS H7版本,固件也是最新的,不知道为什么会显示这种错误,请帮忙指出问题所在和解决方法
-
https://book.openmv.cc/example/06-Video-Recording/imageio-write.html
使用这个程序保存二进制流。https://book.openmv.cc/example/06-Video-Recording/imageio-read.html
使用这个程序读取二进制流。