У меня есть следующая строка кодов
#include <opencv2/opencv.hpp>
#include <cv_bridge/cv_bridge.h>
...
cv::Mat color_image = cv::imread(file_path);
std_msgs::Header dummy_header;
cv_bridge::CvImage cv_image(dummy_header, "bgr8", color_image);
return cv_image.toImageMsg();
со следующими строками в моем CMakeList.txt
find_package(OpenCV 4 REQUIRED COMPONENTS core calib3d imgcodecs highgui)
## Find catkin macros and libraries
find_package(catkin REQUIRED COMPONENTS
cv_bridge
)
К сожалению, этот файл вызывает следующую ошибку.
OpenCV Error: Assertion failed (tlsSlots.size() > slotIdx) in releaseSlot, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/system.cpp, line 1092
terminate called after throwing an instance of 'cv::Exception'
what(): /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/system.cpp:1092: error: (-215) tlsSlots.size() > slotIdx in function releaseSlot
Aborted (core dumped)
Я не мог понять, что идет не так, но есть одна подозрительная вещь - ошибка из opencv-3.2. хотя я собираю с opencv 4.2.
Кто-нибудь знает, что я сделал неправильно?