在 Tegra K1 上用opencv4tegra 不包含的功能以及ROS使用OpenCV问题
(1)在NVIDIA 官方提供的opencv4tegra中,与opencv原版的包相比会缺少一些库。如果需要使用这一类库,则需要自己进行编译,当然,根据英伟达官方的说法,这会让用户失去体验opencv4tegra中专门针对CPU和GPU进行优化的一些特性(虽然笔者并没有在实际应用中体会到优化的部分,也没查到相关源代码的区别)。另一种方法,是将opencv源码与自己的项目一起编译(天啊,太复杂了)。由于笔者有多台机子,每台机子编译一遍简直太复杂了,为了解决这个问题,做了如下尝试:编译一次openCV代码,编译完以后,将确实模块的库文件找到,添加进opencv4tegra的安装路径,这样,既可以保留所谓的opencv4tegra的优良特性,同时还可以使用surf,sift等等一系列算法,简直太方便了。
(2)具体编译的过程,在这里就不具体讲了,需要注意的是,在板子上编译,记得先装好cuda,显卡的架构上必须填上Kepler,否则编译的过程,会报错。编译完成以后,makeinstall 到一个自己制定的文件夹,不要install到/user/local或者/usr之类的地方,以免替换了opencv4tegra版本的东西。
(3)Make install 以后,我们可以发现insall到的文件夹下面有lib、share、include等等文件夹。最先想到的当然是把include和lib下的nonfree模块 的lib和include文件复制到/usr/local里面了。于是,失败了。Cmake根本找不到那堆库,头文件也找不到,除非,手动指定绝对路径,当然,这个必须不是我想要的。继续比较opencv4tegra安装路径和我们自己编译包安装路径下的文件差异。首先是include里面的,在include里面,我们看到有个叫opencv_modules.hpp的文件,打开,加上nonfree模块的include。这回,cmake可以找到include文件了。然而,lib文件,还是悲剧了。继续查找,在pkgconfig的opencv.pc里面发现问题了,这里面要手工在Libs里面添加上-lopencv_nonfree。然后,问题还出在share文件夹里面这里面几个文件挺关键的,关系到cmake能否找到这堆库。Cmake需要在这些文件里预先定义这些库的路径和信息,对比这几个文件,把nonfree模块的信息从我们自己编译的包里面复制过来。Ok,大功告成。这回可以使用sift和surf算法了。
为了方便大家,笔者根据自己编译的模块和做的改动写了个脚本,并把需要替换的文件一并发出来。拿到Opencv_nonfree_ocl以后解压,直接以管理员身份运行installnonfree.sh即可安装opencv中nonfree和ocl的库。
此外,在使用ROS过程中,还发现ROS找不到opencv库的错误,这是由于ROS找的是opencv2.4.8的库,而opencv4tegra用的是2.4.12的库,找不到文件导致的。解决方法是修改ROS的设置文件。文件位置在\opt\ros\jade\lib\pkgconfig\cv_bridge.pc,打开,将里面的Libs一行里面的2.4.8改成2.4.12即可
此文章来自Jetson技术大咖Br2原创,转载请标明出处。
|
-
-
Opencv_nonfree_ocl.rar
2016-7-14 15:34 上传
点击文件名下载附件
651.54 KB, 下载次数: 0
在 Tegra K1 上用opencv4tegra 不包含的功能以及ROS使用OpenCV问题相关推荐
- RoboMaster视觉教程(2)妙算(Nvidia Tegra K1)系统配置
RoboMaster视觉教程(2)妙算(Nvidia Tegra K1)系统配置 概览 妙算资料链接汇总 妙算系统重置/克隆/恢复 妙算安装系统后要做的事 妙算通过网线直连电脑并共享电脑网络 妙算远程 ...
- RK3399 / AR9201 / Tegra K1 /hi3559A / RV1126对比
本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接. 芯片 处理器 GPU/NPU Memory Mult ...
- 虚拟机中对优地Tegra K1开发板刷Ubuntu14
成功的路只有一条,失败的路却有很多条. 这几天一直折腾手中的这块TK1的开发板,目前是android系统想将其刷为Linux.整个过程遇到很多坑,遂记录下来: 软硬件: 笔记本电脑(Win10系统)+ ...
- 通达OA未授权任意文件上传及文件包含漏洞分析学习
今年3月份通达OA爆出了文件上传和文件包含漏洞,网络上很多复现和分析的博客,今天我也来试着分析分析,据360灵腾安全实验室判断该漏洞等级为高,利用难度低,威胁程度高,所以可能比较适合代码审计的新手来练 ...
- 文件上传漏洞_通达OA前台任意文件上传漏洞+文件包含漏洞导致getshell
点击蓝字|关注我们 通达OA前台任意文件上传漏洞 +文件包含漏洞导致getshell 一.漏洞介绍/Profile/ 通达OA介绍: 通达OA(Office Anywhere网络智能办公系统)是由北京 ...
- nVidia Tegra K1 LVDS配置
By Toradex 胡珊逢 1). 简介 nVidia Tegra K1 具有两个独立的显示控制器 Display Controller,能够支持 HDMI.LVDS.DSI 以及 eDP 接口.A ...
- 文件上传、文件包含和目路遍历杂谈
一.说明 文件上传.文件包含和目路遍历是<黑客防线>盛行的时代常谈的getshell手法,但到现在的安全书藉感觉就比较少提及或一笔带过.在谈的年代看不懂,在看得懂的年代又不谈了,概念感觉总 ...
- UDI Tegra K1 SOC安卓游戏开发板测评
UDI Tegra K1 SOC安卓游戏开发板测评 据我所知,优地科技的这款开发板是业内首款基于NVIDIA 的Tegra K1主芯片的安卓嵌入式高性能计算开发板,它的强大之处,可能只有亲自体验才能真 ...
- 解决***.dll没有被指定在windows上运行或者它包含错误的问题
首先根据系统报错进入指定文件夹下(如:C:\WINDOWS\system32)查看报错dll文件是否存在: 如不存在则去诸如脚本之家等地方下载报错的对应dll文件,并放置在报错指定的文件夹下(假定报错 ...
最新文章
- 【ASP.NET】 【防止连续多次点击提交按钮 导致页面重复提交】
- vue脚手架搭建配置试调地址和端口号_全栈的自我修养: 002使用@vue/cli进行vue环境搭建 (使用Vue,SpringBoot,Flask完成前后端分离)...
- 工作79:获取对应中文
- python路径拼接os.path.join()函数完全教程_详解python路径拼接os.path.join()函数的用法...
- openlayers入门开发系列之热力图篇
- html5+php调用android手机图片,HTML5拍照上传图片Phonegap封装HTML5调用Android相机拍照上传到PHP端...
- 移动互联网之路-李晓斌
- 求大佬解决0x00881340 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 写入位置 0x00993B8C 时发生访问冲突。
- UML的简单介绍和画法
- 使用 Android 开发 MQTT 客户端
- [决策单调 分治] LOJ#535. 「LibreOJ Round #6」花火
- 单片机课程设计题目及要求——电风扇模拟控制系统(仿真图加代码加原理图都有)
- C报错ld returned 1 exit status可能的原因
- MMO游戏设计一:角色行走
- php 进程通信系列 (三)信号量
- 辐射4核能选项用计算机失败,玩游戏出问题了?《辐射4》PC版常见问题汇总和解决方案...
- cocos2d-x 禁用触摸
- python中breakpoint什么意思_breakpoint() Python 内置函数
- Python学习笔记:数据可视化(一)
- 【那些年我们一起看过的论文】之《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》
热门文章
- 通过泰勒公式求sinx(C语言)
- GOF 设计模式Facade模式 笔记
- 如何升级vmware workstation虚拟机软件
- 虚拟键盘对照表(KEY 按键)
- 弘辽科技:淘宝新手开店指南
- Kafka的结构、特点和原理(细节)
- SAP 应付暂估分科目核算
- F28335第五篇——EALLOW和EDIS
- 数据名称:中国健康与养老追踪调查数据(CHARLS)数据时间跨度:2008-2018年中国健康与养老追踪调查(China Health and Retirement Longitudinal St
- 飞行堡垒windows10装Linux,ubuntu18 安装坑点记录(华硕飞行堡垒)