Ubuntu16.04下opencv2与ROSkinetic中自带opencv3不兼容问题总结

2023-11-06

1、背景:从ROSindigo换到ROSkinetic,ROSkinetic中自带的opencv3,与原来indigo中opencv2不一样,所以原来的涉及opencv的程序都出了问题,最近这两天就一直在改兼容性,清明节最后一天了,总结一下关于opencv的一些问题

2、代码从indigo移到kinetic后,立马运行了一下,果真不行,然后百度,知道是opencv兼容问题,查到文章一篇:

       ROS-Kinect cv_bridge的opencv版本兼容问题

按照文章修改了配置,后来发现有的程序ok了,有的程序还是不行

出现了

我就意识到现在问题不是兼容性了,根据以往调试经验,undefined reference to xxx CMakeLists.txt中缺少对应库,发现确实忘了加 opencv库,添加之后就ok了。然而奇怪的是,为什么会我之前在indigo中调试没有这个${OpenCV_LIBRARIES}库却没有问题呢?如有大神知道,麻烦留言告知!

target_link_libraries(main_interface ${QT_LIBRARIES} ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})

3、关于opencv3.x的使用及迁移

相关网站: OpenCv3.3.1 Changes overview 

附上wiki介绍:    http://wiki.ros.org/opencv3

// old header
#include "opencv2/<module>/<module>.hpp"
// new header
#include "opencv2/<module>.hpp"
//for example:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/highgui.hpp>//opencv3 changed place

4、ros by example1 代码涉及cv2.cv在kinetic中的使用

(1)rbx1_系列代码是基于indigo的,opencv2,在rbx1_vision中有这么一句

import cv2.cv as cv

在ros kinetic中编译时会出现没有cv这个module的错误提示,因为子啊kinetic中它使用的是opencv3.x,所以你要使用rbx1的代码,必须要使用Ubuntu16.04中自带的opencv2,而不是ROS kinetic中的opencv3!

(2)使用命令查看系统opencv版本:如果不是opencv2.x,那你就要自己去下载opencv2然后自己编译了

sun@sun-pc:~$ pkg-config --modversion opencv  
2.4.9.1

据了解在,python中是通过cv2.so调用opencv的库的:参考链接

Python调用opencv的原理是:opencv编译出共享库文件,python把这个共享库文件作为一个模块加载并使用。通俗点就是,编译opencv的时候开启python接口选项,编译好了会产生cv2.so(linux下)或者cv2.pyd(windows下)这个共享库文件,python代码中import这个cv2就可以用了。为了能正确import它,往往需要把cv2.so放在python找包能找到的路径下,或者修改PYTHONPATH环境变量让它包含cv2.so所在路径。

(3)所以为了避免使用ROSkinetic中的opencv3的库,就需要将其cv2.so删掉,为了以防万一,可以先将cv2.so移到其他地方

sun@sun-pc:~$ cd /opt/ros/kinetic/lib/python2.7/dist-packages
sun@sun-pc:~$ sudo mv cv2.so /home/sun 

移除cv2.so文件后运行rbx1的cv_bridge_demo程序:完美!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu16.04下opencv2与ROSkinetic中自带opencv3不兼容问题总结 的相关文章

  • 使用 Azure 机器学习检测图像中的符号

    4年前我发帖这个问题 https stackoverflow com q 6999920 411094不幸的是 得到的一些答案超出了我的技能水平 我刚刚参加了一次构建巡演会议 他们在会上谈论了机器学习 这让我想到了使用 ML 来解决我的问题
  • OpenCV非旋转图像拼接

    我正在 OpenCV 中进行图像拼接 从不同位置拍摄平面场景的照片并尝试构图全景图 我修改了缝合示例以满足我的需要 openCV 拼接管道的问题是 它假设相机纯粹旋转 但对我来说情况并非如此 当拍摄的照片与场景完全正交时 没有相机旋转 只是
  • OpenCV 中“IplImage”和“CvMat”的全称是什么?

    有一个IplImage and CvMat在 OpenCV 中 他们的全名是什么 IPL in IplImage代表英特尔处理库 这是Intel维护OpenCV时的残余 CV in cvMat代表计算机视觉矩阵 这是图形中常用的数据结构 I
  • OpenCV:视频录制太快

    我有一个简单的录像机 录制来自网络摄像头的视频 theVideoWriter open filename countAsString ext CV FOURCC X V I D 30 Size 1920 1080 true while re
  • 如何使用 OpenCV 从图像中获取调色板 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想提取图像的调色板 类似于此 来自 我需要它来提取特定的颜色 如黄色 绿色和棕色 并显示该颜色覆盖的区域的百分比 另外 我可以添加更
  • 如何获得垂直线穿过的完整内轴线?

    我有一个图像 我想获取穿过其中轴的像素 我尝试使用骨架化 and 中轴方法来获取它们 但这两种方法都返回比相应对象短的一维线 这是带有示例图像的代码 gt gt gt import skimage filter gt gt gt impor
  • 如何使用Java OpenCV

    我正在使用图像处理开始我的最后一年项目 并希望完成类似的事情this http www youtube com watch v EPai5f2sWaA 它是人体和物体检测的结合 我真的很想用 Java 来做 因为我在 C 方面的经验很少 I
  • 从 2 个摄像头捕获(OpenCV、Python)[重复]

    这个问题在这里已经有答案了 所以我试图从 openCV 中的两个摄像头 python 和 windows 7 进行捕获 我用一台相机拍摄的效果很好 你也会注意到我正在对图像做一些时髦的事情 但这并不重要 这是尝试使用两个的代码 import
  • OpenCV Android - 无法解析相应的JNI函数

    我正在尝试按照此处概述的本教程使用 Opencv 设置 Android Studio https www youtube com watch v OTw GIQNbD8 https www youtube com watch v OTw G
  • 对同色像素块的边界进行着色

    我有一张有 5 种不同颜色的图像 在这种情况下 随机生成 w h 40 27 img Image new RGB w h pixels img load available colors r 255 13 18 b 72 64 255 y
  • OpenCV,捕获的视频比原始相机视频运行得更快!

    我正在使用 openCV 从相机捕获视频并将其存储到 avi 文件 问题是当我完成捕获并运行 avi 文件时 视频流看起来速度很快 这是代码 void main CvCapture capture cvCaptureFromCAM 0 in
  • 使用 cv2 在 python 中创建多通道零垫

    我想用 cv2 opencv 包装器在 python 中创建一个多通道 mat 对象 我在网上找到了一些例子 其中 c Mat zeros 被 numpy zeros 替换 这看起来不错 但似乎没有多通道类型适合 看代码 import cv
  • 使用 OpenCV 和 Python 叠加两个图像而不丢失颜色强度

    如何叠加两个图像而不损失两个图像的颜色强度 我有图像1和图像2 2 我尝试使用 0 5 alpha 和 beta 但它给我的合并图像的颜色强度只有一半 dst cv2 addWeighted img1 0 5 img2 0 5 0 但是当我
  • GrabCut - bgdModel 和 fgdModel 为空 - 断言错误

    我正在尝试使用 OpenCV2 1 C 中的 GrabCut 算法进行图像分割 这是我的代码 Mat rgbWorkImage imread argv 1 Mat mask mask Scalar 0 Mat bgdModel fgdMod
  • 如何将 OpenCV 的测试框架与 CMake 结合使用?

    好像 OpenCV 有一个测试框架 https github com Itseez opencv tree ef91d7e8830c36785f0b6fdbf2045da48413dd76 modules ts include opencv
  • 使用opencv+picamera流IO用树莓派捕获视频

    我使用 Raspberry 来简单地显示一个视频 目前仅此 为此 我必须使用 opencv cv2 我尝试了很多解决方案 但现在我想使用 Picamera 库捕获视频 我将向您展示我的代码 import io import time imp
  • 如何将 Opencv VideoWriter 与 GStreamer 结合使用?

    我正在尝试使用 Opencv VideoWriter 传输 h264 流 以使用 VideoCapture 将其传输到网络上的另一台电脑上 但是 我被困在 VideoWriter 上 执行此代码会返回错误 并且 out isOpened 始
  • 如何绘制每个分割对象的轮廓

    我应用分水岭分割来检测触摸对象 这样做效果很好 现在 我想绘制每个对象的轮廓 这样我就可以获得它们的长度 面积 矩等 但是分割结果中的对象仍然是触摸的 所以 我没能画出每一个的轮廓 如何绘制每个对象的轮廓 include
  • OpenCv 与 Android studio 1.3+ 使用新的 gradle - 未定义的参考

    我在使用原生 OpenCv 2 4 11 3 0 0 也可以 和 Android Studio 1 3 以及新的 ndk 支持时遇到问题 所有关于 mk 文件的教程 但我想将它与新的实验性 gradle 一起使用 使用 Kiran 答案An
  • 寻找两个框架之间的变换

    我有来自视频源的两个连续帧 并且我使用 FAST 算法检测这两个帧的关键点 我使用平方差之和法 SSD 来匹配关键点 所以基本上我已经匹配了两个框架之间的关键点 现在我想根据匹配的关键点集计算两个帧之间的仿射变换 缩放 旋转 平移 我知道如

随机推荐

  • 【Python】NMF非负矩阵分解算法(测试代码)

    目录 算法说明 百度百科 基本例程 总结 欢迎关注 Python 系列 持续更新中 欢迎关注 Python 系列 持续更新中 算法说明 百度百科 从多元统计的观点看 NMF是在非负性的限制下 在尽可能保持信息不变的情况下 将高维的随机模式简
  • 视频号5种提高曝光量的技巧

    在新开一个视频号 我们如何来尽可能吸引更多粉丝关注我们呢 在初期如何进行运营呢 我们先来看看现在视频号已知的一个机制 视频号虽然会依托位置 标签 话题等多维度信息进行智能分发 但目前最主 要传播还是靠基于微信生态形成的社交链 即当你的视频被
  • Hive和Hbase的对接

    引言 我们都知道hive数据存储在hdfs上 元数据可以存储在mysql中 计算框架采用mapreduce hive实际上只做分析工具 那么hive的数据是不是也可以存储在hbase呢 文章目录 一 配置hive 二 hive中数据与hba
  • C语言——创建文件

    创建文件 include
  • 俄罗斯方块(C++)

    目录 一 俄罗斯方块简易版的实现 1 图形的存储 2 图形的显示 3 图形的操作 4 碰撞检测 1 碰撞检测 移动 2 碰撞检测 旋转 5 消除整行 6 游戏结束 7 完整代码 二 俄罗斯方块简易版的升级 1 新增属性 2 更改初始化函数
  • CSS 定位(position) (三)

    叠放次序 z index 当对多个元素同时设置定位时 定位元素之间有可能会发生重叠 在CSS中 要想调整重叠定位元素的堆叠顺序 可以对定位元素应用z index层叠等级属性 其取值可为正整数 负整数和0 比如 z index 2 注意 z
  • 阿里云磁盘异常爆满的原因排查及解决方法

    阿里云磁盘异常爆满的原因排查及解决方法 网上搜了好多没有找到解决方法 第一步登录服务器 使用 df h 命令查看磁盘使用率 接下来逐步排查占用内存的文件 输入 du h 显示没有异常大文件 输入 du h max depth 1 后查到异常
  • 论文笔记之ST-GCN

    通过将图卷积网络扩展到时空图模型 设计了一种 用于动作识别的骨架序列 的通用表示 AAAI 2018 录用 论文地址 https arxiv org abs 1801 07455 1 摘要 动态人体骨架模型带有进行动作识别的重要信息 传统的
  • git clone项目报错,The requested URL returned error: 500

    git clone项目报错 The requested URL returned error 500 如何解决 试试修改电脑中存储的账号密码 有项目权限 至少在网页上能通过链接访问当前Git内容 曾在当前电脑登录过git账号 满足以上两种情
  • flutter 保存列表状态和控制列表状态

    class DiscoverActivePageState extends State
  • vue中列表渲染相关知识(v-for)

    普通的列表使用ul包含多个li实现 这样往往不够灵活 在原生js中能够动态渲染列表具体实现如下 ul ul 我们再看看vue中如何实现列表渲染的 b b
  • 微信小程序获取当前位置 地图定位导航-详细代码

    小程序获取当前位置 回到当前位置 地图定位 导航 效果 因为小程序更新了获取地理位置API接口 需要先在app json中配置一下permission字段 不然会报微信小程序getLocation 需要在app json中声明permiss
  • 扩展欧几里得算法

    扩展欧几里得算法是啥 那就要先知道什么是欧几里得算法 欧几里得算法 扩展欧几里得算法是欧几里得算法的推广 利用欧几里得算法的思想和递归求得贝祖等式a x b y gcd a b 不定方程中的一组x和y的解 原理如下 设a gt b 当b 0
  • Coqui TTS 安装与测试

    前言 本篇记录一下 Coqui TTS 的安装 Coqui TTS 的主要作者是德国人 这个库似乎之前和 Mozilla 的 TTS https github com mozilla TTS 有千丝万缕的关系 但是现在后者的 TTS 已经停
  • 2021年江苏省职业院校技能大赛中职 “网络信息安全”赛项(超详细)

    2021年中职组 网络空间安全 赛项 一 江苏省竞赛任务书 二 任务书解析 三 不懂的可以私信博主 一 江苏省竞赛任务书 一 竞赛时间 8 00 11 00 共计3小时 二 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第 阶段
  • [附源码]计算机毕业设计Python课程在线测评系统(程序+源码+LW文档)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 项目运行 环境配置 Pychram社区版 python3 7 7 Mysql5 7 HBuilderX list pip Navicat11 Django nodejs 项目技
  • 一文理解pytorch张量概念和tensor的三种创建方式!

    1 张量是什么 张量是一个多维数组 它是标量 向量 矩阵的高维拓展 1 1 Variable Variable是 torch autograd中的数据类型 主要用于封装 Tensor 进行自动求导 data 被包装的Tensor grad
  • 超实用的IDEA插件推荐,百万级下载量

    超实用的30多款idea插件 有百万级下载量的优秀插件 你值得拥有 好的工具助你事半功倍 快速协助敲出更漂亮更有效率的代码 搬运工这里收集了很不错的IDEA插件 相信你一定会喜欢的 必备插件列表 Grep Console 自定义控制台输出格
  • C#常用代码

    最近学习用C 写了几个程序 记录一下常用的几个操作 方便以后Copy 文件操作 FileStream fs null try byte buf FileStream fs new FileStream strSampleFileName F
  • Ubuntu16.04下opencv2与ROSkinetic中自带opencv3不兼容问题总结

    1 背景 从ROSindigo换到ROSkinetic ROSkinetic中自带的opencv3 与原来indigo中opencv2不一样 所以原来的涉及opencv的程序都出了问题 最近这两天就一直在改兼容性 清明节最后一天了 总结一下