ROS_melodicでOpenCV(C++)を使う

OpenCVは画像処理のライブラリです。
ros-melodic-desktop-fullをインストールしていれば、OpenCVが既にROSに入っています。
今回はfullをインストールしていることが前提です。


1.catkin_create_pkgでOpenCVを使うパッケージを作成します。
例)パッケージ名をhogeにした場合

cd ~/catskin_ws/src
catkin_create_pkg hoge roscpp rospy std_msgs

2.main.cppをいじる

#include <stdio.h>
#include <ros/ros.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char **argv)
{
    Mat img = Mat::zeros(500, 500, CV_8UC3);
    Point p;
    p.x = 300;
    p.y = 150;
    printf("OpenCV\n");
    circle(img, p, 100, Scalar(0,0,255), 5, 4);
    imshow("output", img);
    waitKey(0);
    return 0;
}

3.CMakeLists.txtをいじる
hogeの部分は例です。catkin_create_pkg で決めたパッケージ名を入力してください。
 piyoの部分は例です。好きな名前を入力してください。

cmake_minimum_required(VERSION 2.8.3)
project(hoge)

find_package(catkin REQUIRED COMPONENTS
    roscpp
    rospy
    std_msgs
)

find_package(OpenCV REQUIRED)

catkin_package()

include_directories(    
    ${catkin_INCLUDE_DIRS}
    ${OpenCV_INCLUDE_DIRS}
)

add_executable(
    piyo
    src/main.cpp
)

target_link_libraries(
    piyo
    ${catkin_LIBRARIES}
    ${OpenCV_LIBRARIES}
)

4.実行

rosrun hoge piyo

下の画像が出力されたら成功です。
f:id:rerereren:20200220143528p:plain