Raspberry Pi: Camera V2
This documentation is about the usage of the Raspberry Pi Module Camera V2. It describes basic usage via the Shell and advanced usage with Python programming.
- Hardware: Raspberry Pi
- Operating system: Rasbian
- Interpreter: Python or Python3
Firstly you have to Plug in The Camera Module with the Ribbon Cable. Then you have to allow the usage of the Camera interface:
-> Interfacing Options -> Camera -> Enable it
Rasbian already supplies pre-installed shell scripts for the camera module usage. The is one for Capturing Image
raspistill and one for capturing video
The simplest way to take is py entering the following command:
raspistill -o ./image0.jpg
You can easily adjust the pixel height and with by using the
-h parameters like this:
raspistill -o ./image1.jpg -w 640 -h 480
For advanced use its suggested to read the output of the following command:
To capture a video you need to use the
raspivid command like this
raspivid -o ./video.h264
h264 is a video codec that is compatible with almost every device that can play video. The pi camera can also output mp4 files. For further information use
As well as for all Raspberry accessories, the camera module also comes with a really good python library for both taking still and capturing videos. On the following paragraph I will only cover taking images for the full documentation read the picamera.readthedocs.io documentation.
Taking and exporting stills
The library uses the
stop_preview() to start and end the preview on the screen with out capturing a photograph. The delay is used to frame the shot. It is also possible to project the preview for a long amount if time while taking multiple photos with a different implementation. Then the
capture(Filename) function captures the photo and saves it to the defined directory with the following filename. There are multiple possible image formats by using one of the corresponding filenames:
from picamera import PiCamera from time import sleep camera = PiCamera() camera.start_preview() sleep(5) camera.capture('./image.jpg') camera.stop_preview()
The cameras module allows to manipulate two of the three values of the exposure triangle. Due to that the fact that the module has no lens the aperture stays fixed and its only to adjust the shutter speed and the ISO. Where as only the the ISOs 100, 200, 400, 800 and 1600 can be chosen. If you setting the ISO value to null it will be calculated by the camera module it self also known as auto ISO. The shutter speed value can be adjusted as wanted but the value gets set in microseconds. If the value gets set to zero it is also in auto mode.
camera.shutter_speed = 0 camera.iso = 0
awb_mode variable basically sets white balance to one of the following values to get an more accurate color of white surfaces. The
'auto' mode is usually suited for a large variety of cases and covers everyday photography.
camera.awb_mode = 'auto'
|Auto White Balance Modes|
Tone and Presence
Values like Brightness, Contrast, Sharpness and Saturation can be adapted to change the overall look of the image. There for the
brightness value can be assigned with an integer value between 0 and 100, the
contrast can be assigned with an integer value between -100 and 100, the
sharpness can be assigned with an integer value between -100 and 100 and the
saturation can also be assigned with an integer value between -100 and 100
camera.brightness = 50 camera.contrast = 50 camera.sharpness = 50 camera.saturation = 50
The camera library has also a ton of image effects to play around with. The can be used by setting the
image_effect in the already known manner:
camera.image_effect = 'sketch'