You can use the picamera
Python library to capture a raw sensor image of a camera attached to the Raspberry Pi via CSI:
#!/usr/bin/env python3 import picamera import picamera.array import numpy as np # Capture image print("Capturing image...") with picamera.PiCamera() as camera: with picamera.array.PiBayerArray(camera) as stream: camera.capture(stream, 'jpeg', bayer=True) # Demosaic data and write to rawimg # (stream.array contains the non-demosaiced data) rawimg = stream.demosaic()
rawimg is a numpy uint16 array of dimensions (w, h, 3)
, e.g. (1944, 2592, 3)
and contains integer values from 0
to 1023
.
You can, for example, save it in a NumPy file using
np.save("rawimg.npy", rawimg) # Reload with np.load("rawimg.npy")
or save it in a compressed format using
np.savez_compressed("rawimg.npz", rawimg) # Reload with np.load("rawimg.npz")