cameraboard
Connection to camera board on Raspberry Pi hardware
Add-On Required: This feature requires the MATLAB Support Package for Raspberry Pi Hardware add-on.
Description
This object represents a connection from the MATLAB® software to the camera board on the Raspberry Pi® hardware. To interact with the camera board, use this object with the functions listed in Object Functions.
Creation
Description
creates a connection, mycamera
= cameraboard(mypi
)mycamera
, from the MATLAB software to a camera board on the Raspberry Pi hardware.
uses name-value pair arguments to override the default values of writable camera board
properties. You can use these properties to control image properties such as size,
resolution, orientation, exposure, and special effects.mycamera
= cameraboard(mypi
,Name,Value
)
Input Arguments
mypi
— Connection to Raspberry Pi hardware board
raspi
object
Connection to the Raspberry Pi hardware board, specified as a raspi
object.
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: mycam =
cameraboard(mypi,'Resolution','1280x720')
Resolution
— Image dimensions
'640x480'
(default) | '160x120'
| '320x240'
| '800x600'
| '1024x768'
| '1280x720'
| '1920x1080'
The height and width of the image in pixels that the camera captures, specified as character vector.
Example: '1024x768'
Data Types: char
Quality
— JPEG image quality
10
(default) | integer between 1
and 100
The quality of the image that the camera captures, specified as a scalar between
1
and 100
(low to high).
The value of this parameter is inversely related to the amount of compression
the camera performs upon the JPEG images. A value of 1
applies
maximum compression. A value of 100
applies minimal
compression.
Example: 10
Data Types: double
Rotation
— Degrees of clockwise rotation
0
(default) | Dependent on OS
The orientation of the image that the camera captures.
For Buster OS, specify one of these values: 0
|
90
|
180
|
270
.
For Bullseye and Bookworm OS, specify one of these values: 0
|
180
.
Example: 180
Data Types: double
HorizontalFlip
— Flip image horizontally
0
(default) | 1
Reverse the left and right orientation of the image that the camera captures.
Example: 1
Data Types: scalar
VerticalFlip
— Flip image vertically
0
(default) | 1
Reverse the top and bottom orientation of the image that the camera captures.
Example: 1
Data Types: scalar
FrameRate
— Video frame rate
30
(default) | integer between 2
and 90
This property is read-only.
The number of frames per second (fps) that the camera captures, specified as a
scalar between 2
and 90
.
Example: 30
Data Types: double
Brightness
— Image brightness
50
(default) | integer between 0
and 100
The brightness level to adjust for the amount of lighting on the image that the
camera captures, specified as a scalar between 0
and
100
(low to high).
Example: 60
Data Types: double
Contrast
— Image contrast
0
(default) | integer between -100
to 100
The contrast level to adjust for the difference between brightest and dimmest
areas in the image that the camera captures, specified as a scalar between
-100
and 100
(low to high).
Example: 60
Data Types: double
Saturation
— Image color saturation
0
(default) | integer between -100
to 100
The saturation level to adjust the amount of color in the image that the camera
captures, specified as a scalar between -100
and
100
(low to high).
Example: 60
Data Types: double
Sharpness
— Image sharpness
0
(default) | integer between -100
and 100
The sharpness level to adjust the clarity of the image that the camera captures,
specified as a scalar between -100
to 100
(low
to high).
Example: 60
Data Types: double
ExposureMode
— Exposure mode
Dependent on OS
Exposure mode of the image that the camera captures, specified as a character vector.
For Buster OS, specify one of these values: 'auto' (default)
|
'night'
|
'nightpreview'
|
'backlight'
|
'spotlight'
|
'sports'
|
'snow'
|
'beach'
|
'verylong'
|
'fixedfps'
|
'antishake'
|
'fireworks'
.
For Bullseye and Bookworm OS, specify one of these values: 'normal'
(default)
|
'sport'
.
Example: 'sport'
Data Types: char
ExposureCompensation
— Exposure compensation
0
(default) | integer between -10
and 10
The exposure compensation applied to the image that the camera captures,
specified as a scalar from -10
to 10
(low to
high).
Fine-tune the automatic exposure.
Example: -1
Data Types: double
AWBMode
— Automatic white balance mode
Dependent on OS
Automatic white balance (AWB) mode to apply to the image that the camera captures, specified as a character vector. The AWB mode adjusts the hue of the image to match the color temperature of various light sources.
For Buster OS, specify one of these values: 'auto' (default)
|
'off'
|
'sun'
|
'cloud'
|
'shade'
|
'tungsten'
|
'fluorescent'
|
'incandescent'
|
'flash'
|
'horizon'
.
For Bullseye and Bookworm OS, specify one of these values: 'indoor'
(default)
|
'auto'
|
'incandescent'
|
'tungsten'
|
'fluorescent'
|
'daylight'
|
'cloudy'
|
'custom'
.
Example: 'fluorescent'
Data Types: char
MeteringMode
— Metering mode
'average'
(default) | Dependent on OS
Metering mode, specified as a character vector. The mode you select determines which portion of the image sets the exposure.
For Buster OS, specify one of these values:
'average'
|
'spot'
|
'backlit'
|
'matrix'
.
For Bullseye and Bookworm OS, specify one of these values:
'average'
|
'spot'
|
'centre'
|
'custom'
.
average
— Uses values from across the scene, with a moderate bias toward values near the center.spot
— Uses values from a narrow area in the center of the image. The area is smaller than what the object considers in thecentre
mode.backlit
— Uses a cluster of lower values near the center of the image.matrix
— Uses values from a grid of specific points in the image.centre
— Uses values from the center of the image.custom
— Uses custom values.
Example: 'spot'
Data Types: char
ImageEffect
— Special effect
Dependent on OS
Special effect to apply to the image that the camera captures, specified as a
character vector. Use none
to disable special effects on the
image.
For Buster OS, specify one of these values: 'none' (default)
|
'negative'
|
'solarise'
|
'sketch'
|
'denoise'
|
'emboss'
|
'oilpaint'
|
'hatch'
|
'gpen'
|
'pastel'
|
'watercolour'
|
'film'
|
'blur'
|
'saturation'
|
'colourswap'
|
'washedout'
|
'posterise'
|
'colourpoint'
|
'colourbalance'
|
'cartoon'
.
This property does not support Bullseye and Bookworm OS.
Example: 'cartoon'
Data Types: char
VideoStabilization
— Option to activate stabilization
Dependent on OS
Option to activate built-in stabilization in the video that the camera captures, specified as a character vector. Use this property to reduce vibration in the video.
For Buster OS, specify one of these values: 'off' (default)
|
'on'
.
This property does not support Bullseye and Bookworm OS.
Example: 'on'
Data Types: char
ROI
— Region of interest
[0.00 0.00 1.00 1.00]
(default)
The portion of the camera sensor to use when capturing the image, specified as a vector of four values: x, y, width, and height. You can use this definition to perform digital panning and zooming while you record video.
For still images (snapshot
) and video
(record
), the camera smooths the Region of interest (ROI)
changes by applying them gradually over a sequence of image frames.
The following values define the starting point and the size of ROI:
X, the vertical starting point of ROI, from 0.0000 to 1.0000 (top to bottom)
Y, the horizontal starting point of ROI, from 0.0000 to 1.0000 (left to right)
Height of ROI, from 0.0000 to 1.0000 (small to large)
Width of ROI, from 0.0000 to 1.0000 (small to large)
The following illustration shows how X and Y position the ROI relative to the camera board sensor:
The red dot is at X = 0.00 and Y = 0.00.
The blue dot is at X = 1.00, Y = 1.00.
For example, entering:
mycam.ROI = [0.50 0.50 0.33 0.33]
The 0.50 0.50
values place the upper left corner of the ROI
in the center of the sensor. The 0.33 0.33
values resize the ROI
to 1/3 of the sensor. If ROI exceeds the dimensions of the sensor, the method that
you are using produces the following error:
Index exceeds matrix dimensions.
Example: [0.50 0.50 0.33 0.33]
Data Types: double
Object Functions
Examples
Capture Images from the Camera Board
Create a connection from the MATLAB to the Raspberry Pi board. If you encounter errors after running the above command, try using
additional arguments (as listed in raspi
) or refer to Troubleshoot Connecting Issues to Raspberry Pi Hardware.
mypi = raspi;
Create a connection, mycam
, from the MATLAB software to the camera board on the Raspberry Pi hardware, and set the image
resolution. The connection displays the camera board properties.
mycam = cameraboard(mypi,"Resolution","1280x720")
mycam = Cameraboard with Properties: Name: Camera Board Resolution: "1280x720" (View available resolutions) Quality: 10 (1 to 100) Rotation: 0 (0 or 180) HorizontalFlip: 0 VerticalFlip: 0 FrameRate: 30 (2 to 90) Recording: 0 Picture Settings Brightness: 50 (0 to 100) Contrast: 0 (-100 to 100) Saturation: 0 (-100 to 100) Sharpness: 0 (-100 to 100) Exposure and AWB ExposureMode: "normal" (View available exposure modes) ExposureCompensation: 0 (-10 to 10) AWBMode: "indoor" (View available AWB modes) MeteringMode: "average" (View available metering modes) Effects ROI: [0.00 0.00 1.00 1.00] (0.0 to 1.0 [top, left, width, height])
Capture and display a sequence of 10 snapshots on your computer.
for ii = 1:10 img = snapshot(mycam); imagesc(img) drawnow end
Each of the 10 snapshots is the latest image captured by the camera.
If the image is upside down, change its orientation.
mycam.Rotation = 180
You can use the same approach to change the values of other
cameraboard
properties.
Record a 60 second video.
record(mycam,"myvideo.h264",60)
Stop the recording immediately.
stop(mycam)
Copy the video from the board to your computer.
getFile(mypi,"myvideo.h264","C:\MATLAB")
Delete the video file from the hardware to free up space.
deleteFile(mypi,"myvideo.h264")
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
You can also deploy the
cameraboard
object on the Raspberry Pi hardware in MATLAB Online™.Using the full version of the Raspberry Pi OS is recommended when deploying
cameraboard
on the Raspberry Pi hardware in MATLAB Online.Bullseye and Bookworm OS only supports C++ code generation for
cameraboard
object.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)