Nodes and Components
This package includes a number of ROS 2 components that can be assembled into image processing pipelines. See the tutorial Launching image_proc Components.
Alternatively, each component can be run as a standalone node.
image_proc::CropDecimateNode
Applies decimation (software binning) and ROI to a raw camera image
post-capture. Remap camera and camera_out to the desired input/output
camera namespaces. Also available as a standalone node with the name
crop_decimate_node
.
Subscribed Topics
in/image_raw (sensor_msgs/Image): Raw image stream from the camera driver.
in/camera_info (sensor_msgs/CameraInfo): Camera metadata.
Published Topics
out/image_raw (sensor_msgs/Image): Cropped and decimated “raw” image.
out/camera_info (sensor_msgs/CameraInfo): Camera metadata, with binning and ROI fields adjusted to match output raw image.
Parameters
decimation_x (int, default: 1): Number of pixels to decimate to one horizontally. Range: 1 to 16
decimation_y (int, default: 1): Number of pixels to decimate to one vertically. Range: 1 to 16
image_transport (string, default: raw): Image transport to use.
interpolation (int, default: 0): Sampling algorithm. Possible values are:
NN (0): Nearest-neighbor sampling
Linear (1): Bilinear interpolation
Cubic (2): Bicubic interpolation over 4x4 neighborhood
Area (3): Resampling using pixel area relation
Lanczos4 (4): Lanczos interpolation over 8x8 neighborhood
queue_size (int, default: 5): Size of message queue for synchronizing image and camera_info topics. You may need to raise this if images take significantly longer to travel over the network than camera info.
offset_x (int, default: 0): X offset of the region of interest. Range: 0 to 2447
offset_y (int, default: 0): Y offset of the region of interest. Range: 0 to 2049
width (int, default: 0): Width of the region of interest. Range: 0 to 2448
height (int, default: 0): Height of the region of interest. Range: 0 to 2050
image_proc::CropNonZeroNode
Takes a monochrome image and crops the largest non zero area. Can be used
on depth images. Also available as a standalone node with the name
crop_non_zero_node
.
Subscribed Topics
image_raw (sensor_msgs/Image): Monochrome or depth image.
Published Topics
image (sensor_msgs/Image): Cropped image.
Parameters
image_transport (string, default: raw): Image transport to use.
image_proc::DebayerNode
Takes a raw camera stream and publishes monochrome and color versions
of it. If the raw images are Bayer pattern, it debayers using bilinear
interpolation. Also available as a standalone node with the name
debayer_node
.
Subscribed Topics
image_raw (sensor_msgs/Image): Raw image stream from the camera driver.
Published Topics
image_mono (sensor_msgs/Image): Monochrome image.
image_color (sensor_msgs/Image): Color unrectified image.
Parameters
debayer (int, default: 3): Debayering algorithm. Possible values are:
Bilinear (0): Fast algorithm using bilinear interpolation
EdgeAware (1): Edge-aware algorithm
EdgeAwareWeighted (2): Weighted edge-aware algorithm
VNG (3): Slow but high quality Variable Number of Gradients algorithm
image_transport (string, default: raw): Image transport to use.
image_proc::RectifyNode
Takes an unrectified image stream and its associated calibration parameters,
and produces rectified images. Also available as a standalone node with the
name recify_node
.
Subscribed Topics
image (sensor_msgs/Image): Unrectified image stream.
camera_info (sensor_msgs/CameraInfo): Camera metadata.
Published Topics
image_rect (sensor_msgs/Image): Rectified image.
Parameters
queue_size (int, default: 5): Size of message queue for synchronizing
image
andcamera_info
topics. You may need to raise this if images take significantly longer to travel over the network than camera info.image_transport (string, default: raw): Image transport to use.
interpolation (int, default: 1): Interpolation algorithm between source image pixels. Possible values are:
NN (0): Nearest neighbor
Linear (1): Linear
Cubic (2): Cubic
Lanczos4 (4): Lanczos4
image_proc::ResizeNode
Takes image and camera info and resize them. Also available as
standalone node with the name resize_node
.
Subscribed Topics
image/image_raw (sensor_msgs/Image): Arbitrary image.
image/camera_info (sensor_msgs/CameraInfo): Camera parameters.
Published Topics
resized/image_raw (sensor_msgs/Image): Resized image.
resized/camera_info (sensor_msgs/CameraInfo): Resized camera info.
Parameters
image_transport (string, default: raw): Image transport to use.
interpolation (int, default: 0): Sampling algorithm. Possible values are:
NN (0): Nearest-neighbor sampling
Linear (1): Bilinear interpolation
Cubic (2): Bicubic interpolation over 4x4 neighborhood
Area (3): Resampling using pixel area relation
Lanczos4 (4): Lanczos interpolation over 8x8 neighborhood
use_scale (bool, default: True): Use scale parameters, or absolute height/width.
scale_height (float, default: 1.0): Height scaling of image.
scale_width (float, default: 1.0): Width scaling of image.
height (float): Absolute height of resized image, if
use_scale
is false.width (float): Absolute width of resized image, if
use_scale
is false.
image_proc::TrackMarkerNode
Takes an image, detects an Aruco marker and publishes a geometry_msgs/PoseStamped
of where the marker is located. Also available as standalone node with the name
track_marker_node
.
Subscribed Topics
image (sensor_msgs/Image): Image topic to process.
camera_info (sensor_msgs/CameraInfo): Camera metadata.
Published Topics
tracked_pose (geometry_msgs/PoseStamped): Pose of the marker.
Parameters
dictionary (int, default: 10): Marker dictionary to use. Values correspond to cv.aruco enum. The default of 10 corresponds to the DICT_6X6_250 dictionary.
image_transport (string, default: raw): Image transport to use.
marker_id (int, default: 0): The ID of the marker to use.
marker_size (double, default: 0.05): Size of the marker edge, in meters.