Documentation ¶
Overview ¶
Package camera defines an image capturing device.
Index ¶
- Constants
- Variables
- func Named(name string) resource.Name
- func NamesFromRobot(r robot.Robot) []string
- func NewPinholeModelWithBrownConradyDistortion(pinholeCameraIntrinsics *transform.PinholeCameraIntrinsics, ...) transform.PinholeCameraModel
- func NewPropertiesError(cameraIdentifier string) error
- func NewRPCServiceServer(coll resource.APIResourceCollection[Camera]) interface{}
- func NewUnsupportedImageTypeError(s ImageType) error
- func ReadImage(ctx context.Context, src gostream.VideoSource) (image.Image, func(), error)
- func SimultaneousColorDepthNext(ctx context.Context, color, depth gostream.VideoStream) (image.Image, *rimage.DepthMap)
- type Camera
- func FromDependencies(deps resource.Dependencies, name string) (Camera, error)
- func FromRobot(r robot.Robot, name string) (Camera, error)
- func FromVideoSource(name resource.Name, src VideoSource) Camera
- func NewClientFromConn(ctx context.Context, conn rpc.ClientConn, remoteName string, ...) (Camera, error)
- type ImageType
- type PointCloudSource
- type Properties
- type VideoSource
Constants ¶
const ( UnspecifiedStream = ImageType("") ColorStream = ImageType("color") DepthStream = ImageType("depth") )
The allowed types of streams that can come from a VideoSource.
const SubtypeName = "camera"
SubtypeName is a constant that identifies the camera resource subtype string.
Variables ¶
var API = resource.APINamespaceRDK.WithComponentType(SubtypeName)
API is a variable that identifies the camera resource API.
Functions ¶
func NamesFromRobot ¶
NamesFromRobot is a helper for getting all camera names from the given Robot.
func NewPinholeModelWithBrownConradyDistortion ¶ added in v0.2.13
func NewPinholeModelWithBrownConradyDistortion(pinholeCameraIntrinsics *transform.PinholeCameraIntrinsics, distortion *transform.BrownConrady, ) transform.PinholeCameraModel
NewPinholeModelWithBrownConradyDistortion creates a transform.PinholeCameraModel from a *transform.PinholeCameraIntrinsics and a *transform.BrownConrady. If *transform.BrownConrady is `nil`, transform.PinholeCameraModel.Distortion is not set & remains nil, to prevent https://go.dev/doc/faq#nil_error.
func NewPropertiesError ¶
NewPropertiesError returns an error specific to a failure in Properties.
func NewRPCServiceServer ¶ added in v0.2.36
func NewRPCServiceServer(coll resource.APIResourceCollection[Camera]) interface{}
NewRPCServiceServer constructs an camera gRPC service server. It is intentionally untyped to prevent use outside of tests.
func NewUnsupportedImageTypeError ¶ added in v0.2.4
NewUnsupportedImageTypeError is when the stream type is unknown.
func SimultaneousColorDepthNext ¶
func SimultaneousColorDepthNext(ctx context.Context, color, depth gostream.VideoStream) (image.Image, *rimage.DepthMap)
SimultaneousColorDepthNext will call Next on both the color and depth camera as simultaneously as possible.
Types ¶
type Camera ¶
type Camera interface { resource.Resource VideoSource }
A Camera is a resource that can capture frames.
func FromDependencies ¶
func FromDependencies(deps resource.Dependencies, name string) (Camera, error)
FromDependencies is a helper for getting the named camera from a collection of dependencies.
func FromVideoSource ¶ added in v0.2.36
func FromVideoSource(name resource.Name, src VideoSource) Camera
FromVideoSource creates a Camera resource from a VideoSource. Note: this strips away Reconfiguration and DoCommand abilities. If needed, implement the Camera another way. For example, a webcam implements a Camera manually so that it can atomically reconfigure itself.
type ImageType ¶ added in v0.2.4
type ImageType string
ImageType specifies what kind of image stream is coming from the camera.
type PointCloudSource ¶
type PointCloudSource interface {
NextPointCloud(ctx context.Context) (pointcloud.PointCloud, error)
}
A PointCloudSource is a source that can generate pointclouds.
type Properties ¶
type Properties struct { // SupportsPCD indicates that the Camera supports a valid // implementation of NextPointCloud SupportsPCD bool ImageType ImageType IntrinsicParams *transform.PinholeCameraIntrinsics DistortionParams transform.Distorter }
Properties is a lookup for a camera's features and settings.
type VideoSource ¶ added in v0.2.36
type VideoSource interface { // Stream returns a stream that makes a best effort to return consecutive images // that may have a MIME type hint dictated in the context via gostream.WithMIMETypeHint. Stream(ctx context.Context, errHandlers ...gostream.ErrorHandler) (gostream.VideoStream, error) // NextPointCloud returns the next immediately available point cloud, not necessarily one // a part of a sequence. In the future, there could be streaming of point clouds. NextPointCloud(ctx context.Context) (pointcloud.PointCloud, error) // Properties returns properties that are intrinsic to the particular // implementation of a camera Properties(ctx context.Context) (Properties, error) Close(ctx context.Context) error // contains filtered or unexported methods }
A VideoSource represents anything that can capture frames.
func NewVideoSourceFromReader ¶ added in v0.2.36
func NewVideoSourceFromReader( ctx context.Context, reader gostream.VideoReader, syst *transform.PinholeCameraModel, imageType ImageType, ) (VideoSource, error)
NewVideoSourceFromReader creates a VideoSource either with or without a projector. The stream type argument is for detecting whether or not the resulting camera supports return of pointcloud data in the absence of an implemented NextPointCloud function. If this is unknown or not applicable, a value of camera.Unspecified stream can be supplied.
func WrapVideoSourceWithProjector ¶ added in v0.2.36
func WrapVideoSourceWithProjector( ctx context.Context, source gostream.VideoSource, syst *transform.PinholeCameraModel, imageType ImageType, ) (VideoSource, error)
WrapVideoSourceWithProjector creates a Camera either with or without a projector. The stream type argument is for detecting whether or not the resulting camera supports return of pointcloud data in the absence of an implemented NextPointCloud function. If this is unknown or not applicable, a value of camera.Unspecified stream can be supplied.
Directories ¶
Path | Synopsis |
---|---|
Package align defines the camera models that are used to align a color camera's output with a depth camera's output, in order to make point clouds.
|
Package align defines the camera models that are used to align a color camera's output with a depth camera's output, in order to make point clouds. |
Package fake implements a fake camera which always returns the same image with a user specified resolution.
|
Package fake implements a fake camera which always returns the same image with a user specified resolution. |
Package ffmpeg provides an implementation for an ffmpeg based camera
|
Package ffmpeg provides an implementation for an ffmpeg based camera |
platforms
|
|
jetson
Package jetsoncamera contains information about the daughterboards and camera modules that are supported on jetson platforms.
|
Package jetsoncamera contains information about the daughterboards and camera modules that are supported on jetson platforms. |
Package register registers all relevant cameras and also API specific functions
|
Package register registers all relevant cameras and also API specific functions |
Package rtsp implements an RTSP camera client for RDK
|
Package rtsp implements an RTSP camera client for RDK |
Package transformpipeline defines image sources that apply transforms on images, and can be composed into an image transformation pipeline.
|
Package transformpipeline defines image sources that apply transforms on images, and can be composed into an image transformation pipeline. |
Package velodyne implements a general velodyne LIDAR as a camera.
|
Package velodyne implements a general velodyne LIDAR as a camera. |
Package videosource defines various image sources typically registered as cameras in the API.
|
Package videosource defines various image sources typically registered as cameras in the API. |