simple_flow

Computes the dense optical flow with the SimpleFlow algorithm (cv::optflow::calcOpticalFlowSF()).

opencv_apps

1.11 and later (ROS 1), 3.0.0 and later (ROS 2)

ROS

noetic, ROS One, jazzy, kilted, lyrical and later

OpenCV

the optflow module of opencv_contrib

Group

Optical flow and motion, the nodes of which publish ~/flows (FlowArrayStamped), ~/shift (Point2DStamped) of phase_corr

demo of simple_flow

Usage

# ROS 2
ros2 launch opencv_apps simple_flow.launch.xml image:=/camera/image_raw debug_view:=false
# ROS 1
roslaunch opencv_apps simple_flow.launch image:=/camera/image_raw debug_view:=false

Try it with the demo video

Download the input video of the demo above, publish it as image with image_publisher, and run the node on it, in the terminals:

wget https://ros-perception.github.io/opencv_apps/media/clips/keybridge.mp4
# terminal 1: publish the video as image in a loop
ros2 run image_publisher image_publisher_node keybridge.mp4 --ros-args -p publish_rate:=10.0 -r image_raw:=image
# terminal 2: run the node with the parameters of the demo
ros2 launch opencv_apps simple_flow.launch.xml image:=image scale:=8 use_camera_info:=false
# terminal 3: view the result
ros2 run rqt_image_view rqt_image_view /simple_flow/image

In ROS 1:

# terminal 1
rosrun image_publisher image_publisher keybridge.mp4 _publish_rate:=10 __name:=camera
# terminal 2
roslaunch opencv_apps simple_flow.launch image:=camera/image_raw scale:=8 use_camera_info:=false

See Credits of the demo videos for the license of the video.

Subscribed topics

Topic

Type

image

sensor_msgs/msg/Image

Published topics

Topic

Type

~/flows

opencv_apps/msg/FlowArrayStamped

~/image

sensor_msgs/msg/Image

Parameters

See also the common parameters.

Name

Type

Default (range)

Changed at run time

Description

queue_size

int

3

no, restart the node

Specigy queue_size of input image subscribers

scale

int

4 (1 - 24)

yes

Scale

Source

src/nodelet/simple_flow_nodelet.cpp, launch/simple_flow.launch.xml