machinevisiontoolbox.Camera.CatadioptricCamera
- class machinevisiontoolbox.Camera.CatadioptricCamera(k=None, projection='equiangular', maxangle=None, **kwargs)[source]
Create catadioptric camera projection model
- Parameters:
k (float, optional) – scale factor
projection (str, optional) – projection model:
'equiangular'
[default],'sine'
,'equisolid'
or'stereographic'
kwargs – arguments passed to
CameraBase
constructor
A catadioptric camera comprises a perspective camera pointed at a convex mirror, typically paraboloidal or conical.
The elevation angle range is from \(-\pi/2\) (below the mirror) to maxangle above the horizontal plane. The mapping from elevation angle \(\theta\) to image plane radius is given by:
Projection
\(r(\theta)\)
equiangular
\(r = k \theta\)
sine
\(r = k \sin \theta\)
equisolid
\(r = k \sin \frac{\theta}{2}\)
stereographic
\(r = k \tan \frac{\theta}{2}\)
- Note:
- If
K
is not specified it is computed such that the circular imaging region maximally fills the image plane.
- If
- This camera model assumes central projection, that is, the focal point
is at \(z=0\) and the image plane is at \(z=f\). The image is not inverted.
- References:
Robotics, Vision & Control for Python, Section 13.3.2, P. Corke, Springer 2023.
- Seealso:
CameraBase
CentralCamera
FishEyeCamera
SphericalCamera
- __init__(k=None, projection='equiangular', maxangle=None, **kwargs)[source]
Abstract camera base class
- Parameters:
name (str, optional) – camera instance name, defaults to None
camtype (str, optional) – camera projection type, defaults to ‘central’
rho (scalar or array_like(2), optional) – pixel size, defaults to 1
imagesize (int or array_like(2), optional) – image dimension in pixels, defaults to None
sensorsize (array_like(2), optional) – image sensor size, defaults to None
pp (array_like(2), optional) – principal point position, defaults to None
noise (float, optional) – standard deviation of image plane projection noise, defaults to None
pose (
SE3
, optional) – camera pose, defaults to Nonelimits (array_like(4), optional) – bounds of virtual image plane [umin, umax, vmin, vmax], defaults to None
labels (2-tuple of str, optional) – axis labels for virtual image plane, defaults to
('u', 'v')
seed (int, optional) – random number seed for projection noise, defaults to None
- Raises:
TypeError – name must be a string
TypeError – camtype must be a string
ValueError – rho must be a 1- or 2-element vector
This abstract class is the base for all camera projection model classes. All baseclass constructors support these options.
Methods
Abstract camera base class
Clear the virtual image plane (base method)
Display image on virtual image plane (base method)
Move camera (base method)
Plot 3D camera icon in world view (base method)
Plot 2D line on virtual image plane (base method)
Plot points on virtual image plane (base method)
Plot 3D wireframe in virtual image plane (base method)
Project 3D points to image plane
Reset camera pose (base method)
Attributes
Set/get camera type (base method)
Get image plane height (base method)
Set/get size of virtual image plane (base method)
Set/get camera name (base method)
Set/Get projection noise (base method)
Get image plane width (base method)
Get image plane height (base method)
Set/get camera pose (base method)
Set/get principal point coordinate (base method)
Get pixel dimensions (base method)
Get pixel width (base method)
Get pixel width (base method)
Get principal point: horizontal coordinate (base method)
Get principal point: vertical coordinate (base method)
Get image plane width (base method)