Windows7系统下OpenCV2.4.4+PCL1.6.0+SSBA3.0+VS2010 IDE32环境下编译和安装以实现Sfm和PCL点云数据可视化...
最近在学习《深入理解OpenCV:实用计算机视觉项目解析》一书的第三章和第四章时,遇到很多编译问题,书中又没有详细的讲解环境配置和搭建过程。经过多天的捉摸、调试、排错终于将两章的程序都调试成功了,先做个记录以备忘。该书的英文名为:《Mastering OpenCV with Practical Computer Vision Projects》。
一、开发环境概述
1、OpenCV版本:2.4.4;
2、PCL版本:1.6.0;
3、SSBA版本:3.0;
4、IDE版本:VS2010 32位,字符集:使用多字节字符集;
5、PCL如果涉及到OpenGL,则采用OpenGL32.lib和OpenGL.dll。
二、OpenCV2.4.4编译和安装
1、OpenCV2.4.4下载地址:https://github.com/opencv/opencv/releases?after=2.4.6.1,如下图所示:
2、具体的编译和配置工作参考:OpenCV2.4.12 开启OpenGL启用三维可视化支持。
注意:(1)第一次点击“Configure”时,请在“Specify the generator for this project”选择“Visual Studio 10”,该选项是32位的;
(2)如果你的计算机上已经安装了英伟达GPU CUDA驱动程序,则CMake会检测出来并默认勾选上“WITH_CUDA”。一般情况下,大家的计算机的GPU卡的计算能力CC不够高,为了避免后续编译时出现的各种错误,此去请不要勾选上“WITH_CUDA”。除非你的显卡支持能够支持高级的CUDA计算能力,才能够编译通过。
(3)OpenCV默认情况下是不支持OpenGL的,如果要使OpenCV支持OpenGL,则需要重编译。则需要勾选上“WITH_OPENGL”。如下图所示:
3、常见编译问题汇总:
- OPENCV3.3+CUDA9.0 环境搭建若干错误总结
- VS2010自行编译OpenCV2.4.4时缺少python27_d.lib的解决方法
- VS2015+OpenCV3.3 GPU模块和opencv_contrib模块的编译以及采用CMake编译opencv_contrib时提示“No extra modules found in folder”问题的解决方案
PCL1.6.0下载、编译和安装请参考文档:VS2010中配置PCL
SSBA3.0下载、编译和安装请参考博文:VS2013+简单稀疏光束调整库SSBA配置(64位编译)
注意:该项目编译出来的colamd.lib和V3D.lib都是静态库,没有*.dll后缀的文件。因为colamd和V3D两个项目的配置类型都是“静态库(.lib)”。如下图所示:
2、在编译的过程中可能会提示“vtk***无法解决的外部符号”,如下所示:
1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: thiscall vtkSmartPointerBase::vtkSmartPointerBase(void)" (imp_??0vtkSmartPointerBase@@QAE@XZ),该符号在函数 "public: thiscall vtkSmartPointer::vtkSmartPointer(void)" (??0?$vtkSmartPointer@VvtkImageData@@@@QAE@XZ) 中被引用 1>vtkSDIView.obj : error LNK2001: 无法解析的外部符号 "declspec(dllimport) public: thiscall vtkSmartPointerBase::vtkSmartPointerBase(void)" (imp_??0vtkSmartPointerBase@@QAE@XZ) 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: thiscall vtkSmartPointerBase::~vtkSmartPointerBase(void)" (imp_??1vtkSmartPointerBase@@QAE@XZ),该符号在函数 "public: thiscall vtkSmartPointer::~vtkSmartPointer(void)" (??1?$vtkSmartPointer@VvtkImageData@@@@QAE@XZ) 中被引用 1>vtkSDIView.obj : error LNK2001: 无法解析的外部符号 "declspec(dllimport) public: thiscall vtkSmartPointerBase::~vtkSmartPointerBase(void)" (imp_??1vtkSmartPointerBase@@QAE@XZ) 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class vtkSmartPointerBase & thiscall vtkSmartPointerBase::operator=(class vtkObjectBase *)" (imp_??4vtkSmartPointerBase@@QAEAAV0@PAVvtkObjectBase@@@Z),该符号在函数 "public: class vtkSmartPointer & thiscall vtkSmartPointer::operator=(class vtkImageData *)" (??4?$vtkSmartPointer@VvtkImageData@@@@QAEAAV0@PAVvtkImageData@@@Z) 中被引用 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "declspec(dllimport) public: class vtkSmartPointerBase & thiscall vtkSmartPointerBase::operator=(class vtkSmartPointerBase const &)" (imp_??4vtkSmartPointerBase@@QAEAAV0@ABV0@@Z),该符号在函数 "public: class vtkSmartPointer & thiscall vtkSmartPointer::operator=(class vtkSmartPointer const &)" (??4?$vtkSmartPointer@VvtkImageData@@@@QAEAAV0@ABV0@@Z) 中被引用 1>vtkSDIView.obj : error LNK2001: 无法解析的外部符号 "declspec(dllimport) public: class vtkSmartPointerBase & thiscall vtkSmartPointerBase::operator=(class vtkSmartPointerBase const &)" (imp_??4vtkSmartPointerBase@@QAEAAV0@ABV0@@Z) 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) protected: thiscall vtkSmartPointerBase::vtkSmartPointerBase(class vtkObjectBase *,class vtkSmartPointerBase::NoReference const &)" (imp_??0vtkSmartPointerBase@@IAE@PAVvtkObjectBase@@ABVNoReference@0@@Z),该符号在函数 "protected: thiscall vtkSmartPointer::vtkSmartPointer(class vtkImageData *,class vtkSmartPointerBase::NoReference const &)" (??0?$vtkSmartPointer@VvtkImageData@@@@IAE@PAVvtkImageData@@ABVNoReference@vtkSmartPointerBase@@@Z) 中被引用 1>vtkSDIView.obj : error LNK2001: 无法解析的外部符号 "declspec(dllimport) protected: thiscall vtkSmartPointerBase::vtkSmartPointerBase(class vtkObjectBase *,class vtkSmartPointerBase::NoReference const &)" (imp_??0vtkSmartPointerBase@@IAE@PAVvtkObjectBase@@ABVNoReference@0@@Z) 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkImageData * cdecl vtkImageData::New(void)" (imp_?New@vtkImageData@@SAPAV1@XZ),该符号在函数 "public: static class vtkSmartPointercdecl vtkSmartPointer::New(void)" (?New@?$vtkSmartPointer@VvtkImageData@@@@SA?AV1@XZ) 中被引用 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "declspec(dllimport) public: class vtkImageData * thiscall vtkImageAlgorithm::GetOutput(void)" (imp_?GetOutput@vtkImageAlgorithm@@QAEPAVvtkImageData@@XZ),该符号在函数 "public: void thiscall CvtkSDIDoc::OnFileOpen(void)" (?OnFileOpen@CvtkSDIDoc@@QAEXXZ) 中被引用 1>vtkSDIDoc.obj : error LNK2019: 无法解析的外部符号 "declspec(dllimport) public: static class vtkJPEGReader * cdecl vtkJPEGReader::New(void)" (imp_?New@vtkJPEGReader@@SAPAV1@XZ),该符号在函数 "public: static class vtkSmartPointercdecl vtkSmartPointer::New(void)" (?New@?$vtkSmartPointer@VvtkJPEGReader@@@@SA?AV1@XZ) 中被引用 1>vtkSDIView.obj : error LNK2019: 无法解析的外部符号 "declspec(dllimport) public: static class vtkImageViewer2 * cdecl vtkImageViewer2::New(void)" (imp_?New@vtkImageViewer2@@SAPAV1@XZ),该符号在函数 "public: static class vtkSmartPointercdecl vtkSmartPointer::New(void)" (?New@?$vtkSmartPointer@VvtkImageViewer2@@@@SA?AV1@XZ) 中被引用 1>vtkSDIView.obj : error LNK2019: 无法解析的外部符号 "declspec(dllimport) public: static class vtkRenderWindowInteractor * cdecl vtkRenderWindowInteractor::New(void)" (imp_?New@vtkRenderWindowInteractor@@SAPAV1@XZ),该符号在函数 "public: static class vtkSmartPointer __cdecl vtkSmartPointer::New(void)" (?New@?$vtkSmartPointer@VvtkRenderWindowInteractor@@@@SA?AV1@XZ) 中被引用
首先说明,VTK是PCL所依赖的第三方库开源的可视化工具库。此时,需要把C:\Program Files (x86)\PCL 1.6.0\3rdParty\VTK\lib\vtk-5.8目录下的vtk开头的相关*.lib文件通过“项目属性-连接器-输入-附加依赖项”方式添加到工程,但是这样太麻烦,可在“解决方案资源管理器”中的“资源文件”上单击右键-添加-现有项,从而将所有vtk开头的相关*.lib文件添加到工程中。如下图所示:
3、fatal error C1083: 无法打开包括文件:“vtkCommand.h”: No such file or direct:可在系统环境变量PATH中将VTK的包含目录再增加一层:$(PCL_ROOT)\3rdParty\VTK\include\vtk-5.8。其中PCL_ROOT为PCL安装时设置的系统环境变量,其值为:C:\Program Files (x86)\PCL 1.6.0。
4、OpenCV和PCL同时引用了Flann 引起冲突:Opencv+PCL=Flann 冲突?
5、安装CMake和PCL-1.6.0-AllInOne-msvc2010-win32.exe打算使安装程序自行将路径添加到系统的环境变量PATH时,会弹出失败提示:path too long installer unable to modify path 导致PCL配置失败记。此时可手工将相关路径添加到系统的环境变量PATH中。path too long installer unable to modify path 导致PCL配置失败记。
6、std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”
参考链接:
1、OpenCV2.4.13+CUDA8.0+SSBA3.0+VS2010编译安装
2、WIN7(32位)VS2010+openCV 2.4.10+PCL 1.6.0+CUDA 6.5.14+CMake 3.2.1+SSBA-3.0配置
转载于:https://www.cnblogs.com/rainbow70626/p/9080057.html
Windows7系统下OpenCV2.4.4+PCL1.6.0+SSBA3.0+VS2010 IDE32环境下编译和安装以实现Sfm和PCL点云数据可视化...相关推荐
- 分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view
分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view ...
- 配合Opencv2.4.9,CMake3.12.1和VS2010在win10下构建项目踩坑记录
配合Opencv3,CMake和VS2010在win10下构建项目踩坑记录 参考https://blog.csdn.net/qq_26623659/article/details/78322782 博 ...
- mysql8.0卸载出现问题,Windows环境下MySQL 8.0 的安装、配置与卸载
软件版本 Windows:Windows10 MySQL:mysql-8.0.17-winx64.zip 安装步骤 1.配置环境变量 2.新建my.ini文件 文件位置:C:\Program File ...
- matlab 数组去掉0,科学网—在Matlab环境下去除矩阵中的零向量 - 李航的博文
主要用到了any()函数. e.g.1 找到矩阵中为零的列向量,并将其删除. >> a=[1,2,3;0,0,0;4,5,6;0,0,0;7,8,9]' a = 1 0 4 ...
- VS2010+matlab2012b环境下C++写MAT文件
本人乃C++白痴一枚,今需将一个int数组用mat文件保存,奋战半日有余,终成.恐日后遇类似情况无所从,故而留下此文,待日后查询. PS:工程设置,亲测,http://blog.csdn.net/le ...
- hive 时间转字符串_07697.0.3如何在Kerberos环境下用Ranger完成对Hive的行过滤及列脱敏...
文档编写目的 本篇文章主要介绍如何在CDP DC7.0.3集群中使用Ranger在Hive中进行行过滤及列脱敏,行级别的过滤相当于一个强制性的where子句,例如在订单表中,员工仅被允许查看自己所在地 ...
- upupw ap切换php,upupw套件(php7.0+a+m)windows环境下搭建YII框架
1.下载YII框架, http://www.yiichina.com/download 2.下载好后解压如图,复制红色框到项目文件夹 这个只是看一下当下开发环境是不是满足YII基本要求,我的警告人为忽 ...
- 《大数据》专题征文:国产环境下的大数据处理系统
点击上方蓝字关注我们 <大数据>专题征文:国产环境下的大数据处理系统 (截稿时间:2021年5月31日) 目前,我国在一些前沿领域开始进入并跑.领跑阶段,但仍然面临很多"卡脖子& ...
- Windows7系统助手
Windows7系统助手是一款功能强大,且永久免费的综合型系统辅助软件,该软件有着立即检查和自动体检功能,能够帮助用户全面的了解自身电脑系统中的优化状况.同时,在软件中为用户提供了系统设置.系统优化. ...
- Dapper--Google生产环境下的分布式跟踪系统
Dapper--Google生产环境下的分布式跟踪系统 概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发 ...
最新文章
- 什么是假设检验(hypothesis test)?什么是正态性检验(normality test)?
- springboot 热部署 idea版本(转)
- create_pose算子说明
- 【计算机网络笔记】计算机网络体系与参考模型
- ORACLE 效率测试小工具 Runstats
- php 删除mysql 返回_php 返回mysql字符编码与删除字符编码
- body curl 设置post_curl 命令详解
- [网络流24题] 最长递增子序列
- 在windows server 2008 R2上运行disk cleanup
- Keras深度学习实战(4)——深度学习中常用激活函数和损失函数详解
- Servlet+JSP实现简易购物车功能
- php 755,chmod 命令——chmod 755与 chmod 4755区别_PHP教程
- 数据分析方法——01描述性统计
- 反向传播算法为什么要“反向”
- 运算放大器(运放)介绍
- python中括号的作用_浅析python 中大括号中括号小括号的区分
- 2017年蓝桥杯A组 跳蟋蟀 (BFS)
- 一起做RGB-D SLAM(4)
- 大一大学计算机论文摘要,计算机大学论文摘要怎么写 计算机大学论文摘要范文参考...
- vnc viewer是什么,vnc viewer是什么,怎么用
热门文章
- python 英语分词_python 英文分词
- 微信小程序开发https设置
- 前端H5如何实现分享截图
- Sketch for Mac汉化破解教程含汉化包
- 【第63期】机器人时代已来!推荐几本机器人学硬核好书
- ROS机器人程序设计课程反思-2022终篇-
- 农村三资管理平台app_农村集体经济管理平台、“三资”信息公开手机APP招标公告...
- 百度文库免费下载(附:分享一些有趣的网站,最后一个可以免飞下载百度文库)
- l7sa008b故障代码_Robertshaw 365-A8振动开关故障探测器
- HTML5七夕情人节表白网页制作【圣诞节3d相册】HTML+CSS+JavaScript 圣诞节3D相册代码表白制作