【问题标题】:Running Error caused by cv::resize() when transitioning opencv from 2.4.13 to 3.3.1将 opencv 从 2.4.13 转换到 3.3.1 时 cv::resize() 导致的运行错误
【发布时间】: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⊙)!

【问题讨论】:

标签: c++ opencv


【解决方案1】:

最后,我在我当前的项目B中,重新实现了项目A中使用cv::resize的相关函数,然后就可以了。(⊙o⊙)

【讨论】:

    猜你喜欢
    • 2016-02-21
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2020-10-13
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多