【发布时间】:2019-12-15 21:57:39
【问题描述】:
以下代码是一个示例。
cv::Mat mat = cv::Mat ( 500, 400, CV_32F, cv::Scalar::all ( 2.0 ) );
cv::Mat mat2;
cv::resize(mat, mat2, cv::Size(400,600), 0, 0, cv::INTER_LINEAR);
这给了我这个错误
OpenCV Error: The function/feature is not implemented (Unknown/unsupported array type) in getMat_, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp, line 1319
terminate called after throwing an instance of 'cv::Exception'
what(): /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp:1319: error: (-213) Unknown/unsupported array type in function getMat_
我在 /usr/locl 中安装了 opencv 2.4.13 作为默认版本,并在 ROS 动力学中安装了 opencv 3.3.1。
我的 cmake 项目 A 是基于 opencv 2.4.13 构建的,并且可以正常工作。现在我需要过渡到 opencv 3.3.1,因为另一个 catkin 包 B 依赖于 A 和 opencv 3.3.1。但是,问题如上所述发生,经过一天的谷歌搜索后我无法修复它。
请注意,在使用基于单个 cpp 文件的项目进行测试时,cv::resize 可以正常工作,具体取决于 opencv 2.4.13 或 3.3.1。 它也可以在项目 A 中正常工作,具体取决于 opencv 2.4.13。
但是,它会导致项目 A 中的运行错误,具体取决于 opencv 3.3.1
欢迎任何想法
我还尝试使用 Opencv 2 编译 A 和 B,然后在我的 cmakelists.txt 文件中使用 find_package(OpenCV 2 REQUIRED)。由 resize() 引起的另一个运行错误报告如下(可能会有所不同):
OpenCV Error: The function/feature is not implemented
Unknown/unsupported array type) in getMat_, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp, line 1319
terminate called after throwing an instance of 'cv::Exception' what(): /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp:1319:
error: (-213) Unknown/unsupported array type in function getMat_
或
OpenCV Error: The function/feature is not implemented (You should explicitly call mapHost/unmapHost methods for ogl::Buffer object) in getMat_,
file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp, line 1299
terminate called after throwing an instance of 'cv::Exception' what(): /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/core/src/matrix.cpp:1299:
error: (-213) You should explicitly call mapHost/unmapHost methods for ogl::Buffer object in function getMat_
疯了(⊙o⊙)!
【问题讨论】:
-
你有没有去尝试这里提到的方法(answers.ros.org/question/212860/at-an-impasse-using-opencv)
-
是的,我在我的 cmakelists.txt 文件中使用了 find_package(OpenCV 2 REQUIRED)。我想知道为什么会报告有关 ros-kinetic-opencv3-3.3.1 的错误。