Please note that it is not included in Python and Java versions of OpenRTM-aist. On Linux, build and install it according toOpenCV Sample Code Build Procedure


By starting ImageSubtraction component, the background image is extracted from the input image, the foreground image part is output as a mask image and the background image is output. Used with OpenCVCamera and CameraViewer component. (Note that this component currently does not work properly in a Windows environment, so please use it in Linux (Ubuntu 18.04) environment.)

Start screen

Execution screen of ImageSubtraction component

How to use

ImageSubtraction is a component for extracting the background image from the input image. Here, it is used together with OpenCVCamera for capturing images from USB Camera and CameraViewer component for displaying processed images.

  • Procedure (The following is the procedure on Ubuntu 18.04.)
    • Open a new terminal.
    • Install the sample code according to the above [[OpenCV sample code build procedure for Linux>//node/6974].
    • Start OpenRTP according to OpenRTP and start RTSystemEditor, and display RTC in Name Service View. Open a new SystemEditor. See RTSystemEditor details on how to use RTSystemEditor
    • Open a new terminal.
    • Create rtc1.conf, rtc2.conf, rtc3.conf by the following steps.  $ cp rtc.conf rtc1.conf  $ cp rtc.conf rtc2.conf  $ cp rtc.conf rtc3.conf
    • Open an editor software to edit each "rtc?.conf" and add the following line to the end of the each files.  naming.formats:% h.host_cxt/CameraViewer?.rtc  (Where "?" Is the number "1", "2", "3")
    • Start a new terminal and input the following commands
       $ cd ImageProcessing/opencv/bin
       $ ./CameraViewerComp
    • Repeat to start a new terminal and execute CameraViewerComp with adding "-f rtc1.conf", "-f rtc2.conf", and "-f rtc3.conf" option. Then, you will see 4 CameraViewer screen.
    • Start another terminal and start OpenCVCamera component by inputing following commands.
       $ cd ImageProcessing/opencv/bin
       $ ./OpenCVCameraComp
    • Start Terminal again to launch ImageSubtraction component.
       $ cd ImageProcessing/opencv/bin
       $ ./ImageSubtractionComp
    • Click [>] in the Name Service view on the RTSystemEditor screen and confirm that the components "CameraView0", "CameraViewer1", "CameraViewer2", "CameraViewe3", "OpenCVCamera", and "ImageSubtraction" are displayed.
    • Click [Open New System Editor] button icon_open_editor_ja.png at the top of RTSystemEditor to open a new System Editor and display [System Dialgram] newly.
    • Drag and drop the above five components onto the System Diagram.
    • Connect the ports of each component as shown below.
      Execution example of ImageSubtraction component
    • Right-click on any component and select [Activate Systems].
    • Display the CameraViewer screens by adjusting the positions of the windows like the following.
      ImageSubtraction Outputs
    • When you move the mouse out of the "capture_image" window, the background image is captured at that timing and displayed it on the back_image. Check what happens to the other screens as well.   The following can be set as configuration parameters.
Parameter name meaning
control_mode b and m can be selected. In the case of b, the background image is captured according to the key event. In the case of m, the mode switches between DYNAMIC_MODE, which determines the threshold a pixel by a pixel, and CONSTANT_MODE, which uses one threshold for the entire screen.
image_height Specifies the number of pixels in the vertical direction, but does not work in this sample.
image_width Specifies the number of pixels in the horizontal direction, but does not work in this sample.
threshold_coefficient Coefficient used in DYNAMIC_MODE
constant_threshold Threshold used in CONSTANT_MODE


latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects


Motion editor/Dynamics simulator


Dynamics simulator


Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST


Tokyo Opensource Robotics Association


Middleware for DAQ (Data Aquisition) by KEK