Ошибка opencv: подтверждение не выполнено после завершения - PullRequest
1 голос
/ 30 апреля 2020

У меня есть следующая строка кодов

#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.

Кто-нибудь знает, что я сделал неправильно?

...