OPENCV、ITK、VTK和VS2010集成小结
OPENCV与VS2010的配置(cv2.3.1):该开发套件不提供自建CMake文件,默认安装了现成的OpenCV库文件包。开发人员需在项目目录下配置好开发环境所需的变量,并设置项目相关参数以完成项目的编译与构建。
链接地址:http://www.cnblogs.com/jamiechu/archive/2012/03/01/2376266.html
按照博客中的步骤配置
-
首先是环境变量的设置
-
然后是配置2010
-
按照步骤配置完成后程序编译报错,又在VC++包含目录中添加了三个
D:\OpenCV\opencv\build\include
D:\OpenCV\opencv\build\include\opencv
D:\OpenCV\opencv\build\include\ opencv2
在尝试运行程序时遇到错误,在提示中发现系统缺少opencv_core231.dll文件,并建议从D盘的OpenCV目录中提取该文件并将其复制到Windows系统目录下的指定位置
程序运行时会出现无法找到OpenCV高图形API 2.3.1 DLL文件的错误提示,并将该文件复制到C:\Windows\System32目录中
运行后正常执行但未显示预期效果,在进行逐行调试时发现可能是图片加载失败所导致的问题。经过进一步确认发现由于图片未能正确加载到系统中,则问题仍未得到彻底解决。
此乃程序故障,请注意以下操作:首先生成一个测试程序副本,并将其放置于E:\VS2010\test\test文件夹中;运行该程序后即可确认其正常运行状态;同时请完成opposite框架的配置工作。
自己Cmake的步骤:
http://blog.sina.com.cn/s/blog_7b8c158f01015cdn.html
二、ITK搭建
配置完全按照博客进行:
http://blog.sina.com.cn/s/blog_79aae9bd0101da0c.html
但是出现一些小问题:
在ITK中设置示例和测试程序为OFF的情况下,则会增加大约400个文件;使用2010年版本进行编译所需的时间将显著增加。
位于D:\I_VTK\ITK\ITK_bin目录下发现ITK.sln文件后,请启动编译器并使用VS2010进行编译操作。如果无法操作,请在Solution Explorer中右键点击以生成相应的项目。
三、VTK搭建
安装配置过程主要基于本文及博客中的相关内容完成相应的配置设置:
1. 准备
下载
vtk-5.10.2.zip;
vtkdata-5.10.2.zip;
vtk-5.10.2-win32.exe;
cmake-2.8.6-win32-x86;下载地址:www.vtk.org;
2. 平台环境
win7 32bit
visual studio 2010
3. 开始配置
配置cmake:
解压和安装时最好是放到与VC++安装的路径相近的地方。
运行程序vtk-5.8.2-win32.exe...其安装路径配置为D:\Program Files\VTK5.8.2...在当前目录中将自动生成一个bin文件
(2). 将vtk-5.8.2.zip复制至指定位置D:\Program Files\ Volkovskaia Technologiia\ VTK 5.8.2, 以及将 vtkdata-5.8.2.zip复制至指定路径 D:\Program Files\ Volkovskaia Technologiia\ VTK data
执行cmake-2.8.6-win32-x86,安装目录为:D:\Program Files\CMake 2.8.6
(3). 使用cmake生成一个基于VS2010的工程项目的目的是为了方便地构建VTK软件。“其主要功能是创建一个基于VS2010的工程项目”,这一步骤可以使vtk能够在该环境中进行构建。“其中,“Where is the source code”变量用于指定包含压缩VTK源码的文件夹位置(例如D:\Program Files\VTK5.8.2\VTK),而“Where to build the binaries”变量则用于指定编译完成后放置的目录(例如D:\Program Files\VTK5.8.2\bin);因此建议按照以下步骤配置:首先将项目编译到自动生成的bin文件夹中;其次在实际操作过程中遇到了一些困难。
其他设置暂不处理,请直接点击"Configure"按钮进行配置。大概运行十分钟左右后会生成一组红色结果;然后在"Advanced"选项前点一下勾。
build_examples: 这相当于要求编译VTK中的示例代码。如果选择"on"选项,则意味着必须花费大量时间去手动编译这些示例代码;这种做法显然效率低下;因此建议避免选择该选项
用于测试VTK代码的测试脚本 即为VTK开发者在实际应用中编写的一系列用于验证VTK功能的脚本 这些脚本也常被用作学习和参考材料 不论是用于验证还是作为示例 只要能够帮助更好地理解该技术即可
build_shared_libs: 若关闭此选项(build_shared_libs),则仅生产lib文件。对于开发来说足够了。若开启该功能(build_shared_libs),将额外生成DLL文件。推荐采用该方法;配置结束后把D:\Program Files\VTK5.8.2\bin下所有的.dll文件拷贝到C:\Windows\system32下;
cmake_install_prefix: 这个参数至关重要,在后续步骤中会遇到相关配置问题;通过指定正确的安装路径(如1G多文件目录),可以有效提取具有.h、.lib、.dll等关键组件,并将这些资源集中放置于指定目录下;同时需要修改系统环境变量以支持后续依赖构建;作为起始设置,默认情况下该路径通常设为C:\Program Files\VTK)。
vtk_data_root: 通常情况下, cmake能够自行识别并定位vtkdata文件夹的位置,但当系统无法自动定位时,建议将D:\Program Files\VTK5.8.2\vtkdata这一具体路径填写完整以便cmake系统识别,同时明确告知cmake所需的数据存储位置
该开关主要用于指导那些希望深入学习VTK技术的朋友开启并行计算功能;而对于那些仅需了解VTK基础应用的用户,则建议关闭此选项。
vtkUseGUISupport:必须将其配置为启用状态,在重新编译配置后会自动生成一个新的选项 vtkUseMFC, 并将其设置为启用状态即可。提示: 在CMake中, 某些配置项的显示与存在取决于其他某些配置项. 例如, 当关闭了 vtkUseGUISupport时, vtkUseMFC就不会显示出来.
完成对CMake相关设置后,在界面上再次点击 configure 按钮时会发现仅此一个项目的 build 状态显示为红色;此时需选择该项目的编号(即 vtk_use_mfc),并再次点击 configure 按钮即可生成 VC 方向的工程文件。
配置vs2010:
在指定位置'Where to build the binaries'的 VS2010 工程项目输出目录中执行右键点击并选择打开生成的".sln"文件。
单击右键进入"ALL_BUILD"选项后启动"rebuild"功能;即可完成编译操作。预计耗时约三小时。
当在编译过程中出现了一个错误提示时,请注意以下情况:该错误是因为Windows的IE版本低于VS2008的要求,并且导致SDK中出现了一个错误。请前往文件夹C:\Program Files\Visual Studio 9.0\VC\include\Mingw\tools中查找并编辑包含宏定义的部分。
#ifndef WINVER
#define WINVER 0x0501//你可改为更高版本
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500 // 这是我改的
#endif
另外还有一个错误:vtkio.dll延迟加载失败,改成添加vtkio.lib文件
在完成后,在解决方案中找到“INSTALL”,单击→调试→启动新实例,在随后的操作中它会将后续所需的VTK项目相关文件‘.h, .lib, .dll, .exe’集中输出到指定位置,在结果框中有一个字段名为‘cmake_install_prefix’,该字段指示了这个存储位置。默认情况下,默认值会被放置在C:\Program Files\VTK目录下
这里由于win7增加了权限控制,可能 install 会出如下错误:
1>------ 已启动生成: 项目: INSTALL, 配置: Debug Win32 ------
1>
1>正在执行生成后事件...
1>-- Install configuration: "Debug"
1>CMake Error at cmake_install.cmake:31 (FILE):
1> file cannot create directory: C:/Program Files/VTK/lib/vtk-5.8. Maybe need
1> administrative privileges.
1>Project : error PRJ0019: 工具从"正在执行生成后事件..."
1>生成日志保存在“file://d:\vtk_5.8.0\bin\INSTALL.dir\Debug\BuildLog.htm”
1>INSTALL - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 70 最新, 0 已跳过 ==========
此时只需更改前设指定的Build location for binaries项目的编译目录中cmake安装配置文件中的CMAKE_INSTALL_PREFIX变量即可。
Set the install prefix
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
SET(CMAKE_INSTALL_PREFIX "D:/Program Files/VTK")
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
(**)编译后会出现错误:
Unable to start program 'D:\VTK5.8.0\bin\Debug\INSTALL'系统找不到指定文件
不必管它,只要不报错就行
这个 VS2010 vtk 项目能够支持生成 Debug、Release、MinSizeRel 和 RelWithDebInfo 四种编译模式所需的.h、.lib、.dll 和.exe 文件。为了实现这一目标,请先进行必要的配置参数设置,并按照步骤5和6重复操作以完成构建过程。在完成第一次构建后,请将临时文件移动至其他目录以避免覆盖问题。例如,在调试模式下构建成功了。
(9) 至此编译已完成。现在开始测试吧!创建一个终端空白项目,并新建一个C++源代码文件,在下面粘贴这段代码到项目的源码目录中。
[cpp] view plaincopy
[cpp] view plaincopy
#include "vtkConeSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkProperty.h"
#include "windows.h"
int main()
{
vtkConeSource *cone = vtkConeSource::New();
cone->SetHeight( 3.0 );
cone->SetRadius( 1.0 );
cone->SetResolution( 10 );
vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
coneMapper->SetInputConnection( cone->GetOutputPort() );
vtkActor *coneActor = vtkActor::New();
coneActor->SetMapper( coneMapper );
vtkRenderer *ren1= vtkRenderer::New();
ren1->AddActor( coneActor );
ren1->SetBackground( 0.1, 0.2, 0.4 );
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer( ren1 );
renWin->SetSize( 300, 300 );
int i;
for (i = 0; i < 360; ++i)
{
renWin->Render();
ren1->GetActiveCamera()->Azimuth( i );
Sleep(200);
}
cone->Delete();
coneMapper->Delete();
coneActor->Delete();
ren1->Delete();
renWin->Delete();
return 0;
}
(10)然后配置该项目的各种环境,lib,include:
参照上一篇博客
