OpenCV Error: Bad argument (Unknown interpolation method) in resize 问题解决

Hello,欢迎来到我的博客
这篇博客是关于ROS下使用OpenCV遇到的问题的解决方法,而今天这个问题更为特殊,是在ROS下使用OpenCV的detect功能(如HOG-SVM)时会遇到的。

1 问题描述

本文的操作环境
系统:Ubuntu 18.04
ROS版本:melodic
OpenCV版本:3.4.3
Python版本:3.6

Issue

OpenCV Error: Bad argument (Unknown interpolation method) in resize, file /build/opencv-XDqSFW/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp, line 3367
terminate called after throwing an instance of 'cv::Exception'
what(): /build/opencv-XDqSFW/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp:3367: error: (-5) Unknown interpolation method in function resize

我遇到这个问题是在ROS中使用OpenCV的detectMultiScale函数时遇到的。代码在编译过程中没有问题,但是运行时会报错,这里可以参考一篇英文博客:
Unknown interpolation method in function resize
作者在博客中提到了,这个问题可能是由于运行中调用的库函数发生冲突导致的。由于ROS中图像数据的转换用到了cv_bridge包,这个包是默认安装的,它引用的OpenCV版本和我们工程中用到的很可能不一样,所以导致了冲突。于是,重新编译cv_bridge包就成了解决问题的关键。

2 编译cv_bridge

1、进入工程目录(就是你的项目工程,不要新建其他的工作空间):

cd catkin_ws/src

2、下载cv_bridge代码:

git clone https://github.com/ros-perception/vision_opencv.git

3、编译代码:

cd ..
catkin_make

如果到这一步,你直接编译通过了,那么恭喜你,你很幸运。
但是,一般你通过不了,你还会遇到一些错误

3 解决编译报错

3.1 Issue 1

Could not find the following Boost libraries:boost_python37

这个问题是说找不到boost_python37库,这个问题的解决方法是:

//建立软连接
cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libboost_python-py36.so libboost_python37.so
sudo ln -s libboost_python-py36.a libboost_python37.a

参考链接:https://blog.csdn.net/qq_42138662/article/details/105677869

3.2 Issue 2

/usr/include/python2.7/numpy/__multiarray_api.h:1537:144: error: return-statement with no value, in function returning ‘void*’ [-fpermissive]

这个问题是由于cv_bridge用了python2来编译,我们需要把python版本改成python3
解决方法是:

# 打开cv_bridge包中的CMakeLists.txt,然后在find_package(PythonLibs)前面添加以下两句话
set(PYTHON_NUMPY_INCLUDE_DIR ~/.local/lib/python3.6/site-packages/numpy/core/include)
set(PYTHON_INCLUDE_DIR /usr/include/python3.6)

注意以上的两个地址都是改成你自己对应的地址

pip3 show numpy # 这一句可以显示python3 numpy的地址

参考链接:https://blog.csdn.net/qq_18276949/article/details/107014026

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值