I have a raw_images.bin recorded using OpenMV cam M7 in a 8bit Bayer format. How can i read the raw images, convert to RGB and save them with lossless compression into my disk
Hi, see the IO reader example.
Then when you read a frame use the to_rgb565() method. Then, save the images as a BMP file.
You don’t want to try to save as PNG. That’s for graphics. JPEG is preferred but you said losses compression.
Thanks for the quick reply. I am sorry as I am very new to OpenMV I would need your help further.
So, basically I was able to find out that the below code from imageio_read…py may work to read the images from .bin file.
However, when i run this i get module ‘image’ has no attribute ‘ImageIO’.
How do i install image library correctly? Am I doing it right?
# import sensor, image, time import image, time # snapshot_source = False # Set to true once finished to pull data from sensor. # # sensor.reset() # sensor.set_pixformat(sensor.RGB565) # sensor.set_framesize(sensor.QQVGA) # sensor.skip_frames(time = 2000) clock = time.process_time() stream = None stream = image.ImageIO("./raw_images.bin", "r") while True: clock.tick() img = stream.read(copy_to_fb=True, loop=True, pause=True) # Do machine vision algorithms on the image here. print(clock.fps())
You need to update your firmware.
Hi. I build the firmware linux build and was able to generate all the build artifacts. However, I still get the ‘image’ has no attribute ‘ImageIO’ error. I am not sure what image library it is importing.
# Image Reader Example # # USE THIS EXAMPLE WITH A USD CARD! # # This example shows how to use the Image Reader object to replay snapshots of what your # OpenMV Cam saw saved by the Image Writer object for testing machine vision algorithms. # Altered to allow full speed reading from SD card for extraction of sequences to the network etc. # Set the new pause parameter to false import sensor, image, time snapshot_source = False # Set to true once finished to pull data from sensor. 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) # Do machine vision algorithms on the image here. print(clock.fps())
This example works with the latest firmware. Not sure what issues you are having.