Pi Camera Module Interface with Raspberry Pi using Python
Introduction
Pi Camera Module (v1.3)
Pi Camera module is a camera which can be used to take pictures and high definition video.
Raspberry Pi Board has CSI (Camera Serial Interface) interface to which we can attach PiCamera module directly.
This Pi Camera module can attach to the Raspberry Pi’s CSI port using 15-pin ribbon cable.
Features of Pi Camera
Here, we have used Pi camera v1.3. Its features are listed below,
- Resolution – 5 MP
- HD Video recording – 1080p @30fps, 720p @60fps, 960p @45fps and so on.
- It Can capture wide, still (motionless) images of resolution 2592x1944 pixels
- CSI Interface enabled.
How to attach Pi Camera to Raspberry Pi?
Connect Pi Camera to CSI interface of Raspberry Pi board as shown below,
Now, we can use Pi Camera for capturing images and videos using Raspberry Pi.
Before using Pi Camera, we need to enable camera for its working.
How to Enable Camera functionality on Raspberry Pi
For enabling camera in Raspberry Pi, open raspberry pi configuration using following command,
sudo raspi-config
then select Interfacing options in which select camera option to enable its functionality.
reboot Raspberry Pi.
Now we can access camera on Raspberry Pi.
Now we can capture images and videos using Pi Camera on Raspberry Pi.
Example
Capture images and save it to the specified directory.
We can capture images using Python. Here, we will write a Python program to capture images using Pi Camera on Raspberry Pi.
Here, we have used
picamera
package(library) which provides different classes for Raspberry Pi. Out of which we are mainly interested in PiCamera
class which is for camera module.Python Program for Image Capture
'''
capture images on Raspberry Pi using Pi Camera
http://www.electronicwings.com
'''
import picamera
from time import sleep
#create object for PiCamera class
camera = picamera.PiCamera()
#set resolution
camera.resolution = (1024, 768)
camera.brightness = 60
camera.start_preview()
#add text on image
camera.annotate_text = 'Hi Pi User'
sleep(5)
#store image
camera.capture('image1.jpeg')
camera.stop_preview()
Functions Used
To use
picamera
python based library we have to include it in our program as given belowimport picamera
This
picamera
library has PiCamera
class for camera module. So, we have to create object for PiCamera class.
PiCamera Class
To use Pi Camera in Python on Raspberry Pi, we can use PiCamera class which has different APIs for camera functionality. We need to create object for PiCamera class.
E.g.
Camera = picamera.PiCamera()
The above PiCamera class has different member variables and functions which we can access by simply inserting a dot (.) in between object name and member name.
E.g.
Camera.resolution = (1080, 648)
capture()
It is used to capture images using Pi Camera.
E.g.
Camera.capture(“/home/pi/image.jpeg”)
The
capture()
function has different parameters which we can pass for different operations like resize, format, use_video_port, etc.
E.g.
Camera.capture(“/home/pi/image.jpeg”, resize=(720, 480))
resolution= (width,height)
It sets the resolution of camera at which image captures, video records and preview will display. The resolution can be specified as (width, height) tuple, as a string formatted WIDTHxHEIGHT, or as a string containing commonly recognised display resolution name e.g. “HD”, “VGA”, “1080p”, etc.
E.g.
Camera.resolution = (720, 480)
Camera.resolution = “720 x 480”
Camera.resolution = “720p”
Camera.resolution = “HD”
Annotate_text = “Text”
It is used to add text on image, video, etc.
E.g.
Camera.annotate_text = “Hi Pi User”
start_preview()
It displays the preview overlay of default or specified resolution.
Example
Camera.start_preview()
stop_preview()
It is used to close the preview overlay.
E.g.
Camera.stop_preview()
Note: There are various APIs of PiCamera class. So, to know more API in detail you can refer
Python Program for Video Recording
'''
Record video on Raspberry Pi using pi Camera
http://www.electronicwings.com
'''
import picamera
from time import sleep
camera = picamera.PiCamera()
camera.resolution = (640, 480)
print()
#start recording using pi camera
camera.start_recording("/home/pi/demo.h264")
#wait for video to record
camera.wait_recording(20)
#stop recording
camera.stop_recording()
camera.close()
print("video recording stopped")
Functions used
We have to create object for PiCamera class. Here, we have create object as camera.
start_recording()
It is used to start video recordingand store it.
E.g.
Camera.start_recording(‘demo.h264’)
It records video named demo of h264 format.
wait_recording(timeout)
Wait on video encoder for specified timeout seconds.
E.g.
Camera.wait_recording(60)
stop_recording()
It is used to stop video recording.
E.g.
Camera.stop_recording()
No comments:
Post a Comment