viam.components.camera
Submodules
Package Contents
Classes
Camera represents any physical hardware that can capture frames. |
|
Abstract base class for protocol messages. |
|
Abstract base class for protocol messages. |
|
A raw bytes representation of an image. |
- class viam.components.camera.Camera(name: str)[source]
Camera represents any physical hardware that can capture frames.
This acts as an abstract base class for any drivers representing specific camera implementations. This cannot be used on its own. If the
__init__()
function is overridden, it must call thesuper().__init__()
function.- class Properties[source]
The camera’s supported features and settings
- supports_pcd :bool
Whether the camera has a valid implementation of
get_point_cloud
- intrinsic_parameters :viam.proto.component.camera.IntrinsicParameters
The properties of the camera
- distortion_parameters :viam.proto.component.camera.DistortionParameters
The distortion parameters of the camera
- SUBTYPE :Final
- abstract async get_image(mime_type: str = '', *, timeout: Optional[float] = None, **kwargs) Union[PIL.Image.Image, viam.media.video.RawImage] [source]
Get the next image from the camera as an Image or RawImage. Be sure to close the image when finished.
- Parameters
mime_type (str) – The desired mime type of the image. This does not guarantee output type
- Returns
The frame
- Return type
Image | RawImage
- abstract async get_point_cloud(*, timeout: Optional[float] = None, **kwargs) Tuple[bytes, str] [source]
Get the next point cloud from the camera. This will be returned as bytes with a mimetype describing the structure of the data. The consumer of this call should encode the bytes into the formatted suggested by the mimetype.
To deserialize the returned information into a numpy array, use the Open3D library.
import numpy as np import open3d as o3d data, _ = await camera.get_point_cloud() # write the point cloud into a temporary file with open("/tmp/pointcloud_data.pcd", "wb") as f: f.write(data) pcd = o3d.io.read_point_cloud("/tmp/pointcloud_data.pcd") points = np.asarray(pcd.points)
- Returns
The pointcloud data. str: The mimetype of the pointcloud (e.g. PCD).
- Return type
bytes
- abstract async get_properties(*, timeout: Optional[float] = None, **kwargs) Properties [source]
Get the camera intrinsic parameters and camera distortion parameters
- Returns
The properties of the camera
- Return type
- class viam.components.camera.DistortionParameters(*, model: str = ..., parameters: collections.abc.Iterable[builtins.float] | None = ...)
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
- property parameters: google.protobuf.internal.containers.RepeatedScalarFieldContainer[float]
- model :str
- class viam.components.camera.IntrinsicParameters(*, width_px: int = ..., height_px: int = ..., focal_x_px: float = ..., focal_y_px: float = ..., center_x_px: float = ..., center_y_px: float = ...)
Abstract base class for protocol messages.
Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.
- width_px :int
- height_px :int
- focal_x_px :float
- focal_y_px :float
- center_x_px :float
- center_y_px :float
- class viam.components.camera.RawImage[source]
A raw bytes representation of an image.
A RawImage should be returned instead of a PIL Image instance under one of the following conditions
The requested mime type has the LAZY_SUFFIX string appended to it
2) The requested mime type is not supported for decoding/encoding by Viam’s Python SDK
- data :bytes
The raw data of the image
- mime_type :str
The mimetype of the image