plotCamera
Plot a camera in 3-D coordinates
Description
plots a default
camera in 3-D coordinates in the current axes. The function returns
cam
= plotCameracam
, a Camera
object that contains
the properties of the plotted camera.
plots one or more cameras specified by cam
= plotCamera(cameraTable
)cameraTable
.
specifies options using one or more name-value pair arguments. For example,
cam
= plotCamera(Name,Value
)'Opacity'
,0.4
sets the opacity of the
plotted camera to 0.4
.
The name-value pair arguments set the associated properties of the plotted camera visualization object.
Examples
Plot Animated Camera Using Absolute Pose
Create a rigid3d
object.
R = [1 0 0; 0 0 -1;0 1 0]; t = [10 0 20]; pose = rigid3d(R,t);
Plot a camera with an opacity of zero and an absolute pose based on the created rigid3d
object.
cam = plotCamera('AbsolutePose',pose,'Opacity',0)
cam = Camera with properties: Parent: [1x1 Axes] Size: 1 AbsolutePose: [1x1 rigid3d] Visible: 1 AxesVisible: 0 ButtonDownFcn: '' Color: [1 0 0] Opacity: 0 Label: ''
Set viewing properties for the current axes.
grid on axis equal axis manual
Expand the viewable limits of each axis. These changes enable the entire animation to be visible in the next step.
xlim([-15 20]); ylim([-15 20]); zlim([15 25]);
Rotate the camera around the y-axis.
for theta = 0:pi/64:10*pi T = [cos(theta) 0 sin(theta);0 1 0;-sin(theta) 0 cos(theta)]; cam.AbsolutePose = rigid3d(T * R, [10 * cos(theta), 10 * sin(theta), 20]); drawnow(); end
Visualize Camera Extrinsics
Create a set of calibration images.
images = imageSet(fullfile(toolboxdir('vision'),'visiondata','calibration','slr'));
Detect the checkerboard corners in the images.
[imagePoints,boardSize] = detectCheckerboardPoints(images.ImageLocation);
Generate the world coordinates of the checkerboard corners in the pattern-centric coordinate system, with the upper-left corner at (0,0). Set the square size to 29 mm.
squareSize = 29; worldPoints = generateCheckerboardPoints(boardSize,squareSize);
Calibrate the camera.
cameraParams = estimateCameraParameters(imagePoints,worldPoints);
Load an image at its new location.
imOrig = imread(fullfile(toolboxdir('vision'),'visiondata','calibration','slr','image9.jpg')); figure; imshow(imOrig,'InitialMagnification',50); title('Input Image');
Undistort the image.
im = undistortImage(imOrig,cameraParams);
Find the reference object in the new image.
[imagePoints,boardSize] = detectCheckerboardPoints(im);
Compute the new extrinsics.
[rotationMatrix,translationVector] = extrinsics(imagePoints,worldPoints,cameraParams);
Plot the world points.
figure; plot3(worldPoints(:,1),worldPoints(:,2),zeros(size(worldPoints, 1),1),'*'); hold on
Mark the origin.
plot3(0,0,0,'g*');
Compute the camera location and orientation.
orientation = rotationMatrix'; location = -translationVector * orientation;
Plot the camera.
absPose = rigid3d(orientation,location); cam = plotCamera('AbsolutePose',absPose,'Size',20);
Make the z -axis point down.
set(gca,'CameraUpVector',[0 0 -1]);
Set the view parameters.
camorbit(gca,-110,60,'data',[0 0 1]); axis equal grid on
Turn on 3-D rotation.
cameratoolbar('SetMode','orbit');
Label the axes.
xlabel('X (mm)'); ylabel('Y (mm)'); zlabel('Z (mm)');
Input Arguments
cameraTable
— Properties of cameras for visualization
table
Properties of cameras for visualization, specified as a table. Each row
represents a single camera. Each column title must match the name-part of a
name-value pair argument. The nth-row values set the
properties for the nth element of
cam
. You cannot specify values for
'Parent'
. If the table contains a
'ViewId'
column, then the view IDs are used to set
the 'Label'
values of the cameras.
Name-Value Arguments
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: 'Size'
,0.3
specifies the camera-base width as
0.3
.
AbsolutePose
— Camera absolute pose
rigid3d
object
Camera absolute pose in the world coordinate system, specified as the
comma-separated pair consisting of 'AbsolutePose'
a
rigid3d
object.
Size
— Camera-base width
1
(default) | positive real number
Camera-base width, specified as the comma-separated pair consisting of
'Size'
and a positive real number.
Label
— Camera label
''
(default) | character vector | string scalar
Camera label, specified as the comma-separated pair consisting of 'Label
'
and a character vector or a string scalar.
Color
— Camera color
[1 0 0]
(red) (default) | RGB triplet
Camera color, specified as the comma-separated pair consisting of 'Color
'
and an RGB triplet. An RGB triplet is a three-element row vector whose
elements specify the intensities of the red, green, and blue components
of the color. The intensities must be in the range [0, 1].
Opacity
— Camera opacity
0.2
(default) | scalar in the range [0,1]
Camera opacity, specified as the comma-separated pair consisting of
'Opacity
' and a scalar in the range
[0,1].
Visible
— Camera visibility
true
or
1
(default) | false
or 0
Camera visibility, specified as the comma-separated pair consisting of
'Visible
' and a numeric or logical
1
(true
) or
0
(false
).
AxesVisible
— Camera axes visibility
false
or
0
(default) | true
or 1
Camera axes visibility, specified as the comma-separated pair consisting of
'AxesVisible
' and a numeric or logical
1
(true
) or
0
(false
).
ButtonDownFcn
— Callback function
''
(default) | function handle
Callback function, specified as the comma-separated pair consisting of
'ButtonDownFcn
' and a function handle that
executes when you click the camera.
Parent
— Output axes
axes
handle
Output axes, specified as the comma-separated pair consisting of 'Parent
'
and an axes handle. By default, plotCamera
uses the
current axes handle. To return the current axes, use the
gca
function.
Output Arguments
cam
— Camera visualization object
Camera
object | row vector of Camera
objects
Camera visualization object, returned as one of these options.
Camera object — The function returns this option when plotting a single camera. Name-value pair arguments or
cameraTable
input elements set the correspondingCamera
object properties.Row vector of Camera objects — The function returns this option when plotting multiple cameras. The nth -row values of the
cameraTable
input set the properties for the nthCamera
object in this vector.
Camera objects are created using the
vision.graphics.Camera
class.
Version History
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
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)