一、OPENCV与VS2010的搭建(opencv2.3.1):没有自己CMake,直接安得编译好的库,配置环境变量和配置2010
网址:http://www.cnblogs.com/jamiechu/archive/2012/03/01/2376266.html
按照博客中的步骤配置
1. 首先是环境变量的设置
2. 然后是配置2010
3. 按照步骤配置完成后程序编译报错,又在VC++包含目录中添加了三个
D:\OpenCV\opencv\build\include
D:\OpenCV\opencv\build\include\opencv
D:\OpenCV\opencv\build\include\ opencv2
4. 然后运行出现错误:系统丢失opencv_core231.dll文件,将D:\OpenCV\opencv\build\gpu\x86\bin下的该文件粘贴在C:\Windows\System32下
5. 运行后又报错:系统丢失opencv_highgui231.dll文件,也将之粘贴在C:\Windows\System32下
运行后,没有错误但是程序没有显示效果,单步调试了一下应该是图片加载的问题,因为图片没有加载进去,问题没有解决!
果然是程序的问题,有复制了一个测试程序,并将图片放在了E:\VS2010\test\test目录下,运行后正确,opencv配置完成。
自己Cmake的步骤:
http://blog.sina.com.cn/s/blog_7b8c158f01015cdn.html
二、ITK搭建
配置完全按照博客进行:
http://blog.sina.com.cn/s/blog_79aae9bd0101da0c.html
但是出现一些小问题:
1. ITK中示例和测试程序选为OFF,否则多出400多个文件,用2010编译需要相当长的时间。
2. 在 D:\I_VTK\ITK\ITK_bin目录下找到 ITK.sln, 点击,使用 VS2010进行编译。不会操作,直接在Solution Exploer上点击右键生成即可。
三、VTK搭建
安装配置过程主要结合本文和博客进行配置http://blog.csdn.net/tdmyl/article/details/7400584:
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++安装的路径相近的地方。
(1).执行vtk-5.8.2-win32.exe,安装目录为:D:\Program Files \VTK5.8.2,本文件夹下新生成一个bin文件;
(2).把vtk-5.8.2.zip解压到D:\Program Files\VTK5.8.2\VTK,把vtkdata-5.8.2.zip解压到D:\Program Files\VTK5.8.2\VTKdata,
执行cmake-2.8.6-win32-x86,安装目录为:D:\Program Files\CMake 2.8.6
(3).运行cmake, cmake 的作用是生成一个 VS2010 工程项目,使得 vtk 可以被 VS2010 编译,“Where is the source code”用来指定VTK源码加压缩后的文件夹位置(D:\Program Files\VTK5.8.2\VTK),“Where to build the binaries”用来指定 VS2010 工程项目的输出位置(D:\Program Files\VTK5.8.2\bin);建议就这样设置,就把项目输出放在自动生成的bin文件夹下面;当然水灵的视频说了可以在自建文件夹下面,我在配置时出现了问题;
(4).其他的目前先不用做,直接点“Configure”配置一下,大约运行个十分钟左右,就会显示出一片红色的结果,这时候在“Advanced”前打个勾;
build_examples: 就是询问是否编译vtk中的例子,如选则on,就要花时间把vtk的例子编译一遍。建议不选,否则很耗时间;
build_testing: test code 就是vtk开发者用来测试 vtk代码的一些测试代码,我们常常把它们当成学习vtk的例子,与build_examples类似。不选!
build_shared_libs: 如果设置为off,就只会生成lib文件,用于开发肯定是够了。如果设置为on,将会多生成dll文件。建议选择上,配置结束后把D:\Program Files\VTK5.8.2\bin下所有的.dll文件拷贝到C:\Windows\system32下;
cmake_install_prefix: 这个比较重要,就是以后要安装vtk的路径。安装的好处就是可以从 1G多的文件中提取出.h .lib .dll等精华,安装在指定目录下,并修改系统环境变量。(这个默认的是C:\Program Files\VTK,这个在编译INSTALL时会出现文件,在之后会讲到,先默认);
vtk_data_root: 一般地,cmake可以自己找到vtkdata的路径,但如果没有,把D:\Program Files\VTK5.8.2\vtkdata\填上即可,告诉cmake,vtk需要的数据都在哪里
vtk_use_parallel: 对于想用vtk做并行计算的朋友,要把这个选上,对于只想学学vtk的,保持默认off
vtk_use_guisupport:必须把它设置为 on,再次configure之后,会出现一个新的选项vtk_use_mfc,把它也设置为on就行了。提示:在cmake中,有些选项是依赖于另一些选项的,比如vtk_use_guisupport和vtk_use_mfc,当我们禁用vtk_use_guisupport,vtk_use_mfc是看不到的。
修改完cmake选项以后,再按一次configure按钮,就只有vtk_use_mfc是红色的了,选择vtk_use_mfc,再按一次configure,就可以生成vc的工程文件了。
配置vs2010:
(5)在之前指定的“Where to build the binaries”的 VS2010 工程项目输出目录中,双击打开生成的”.sln"文件
(6)右键点击“ALL_BUILD”选择“rebuild”(重新生成)就可以进行编译生成了,大约需要半个小时
注意:如果在编译的时候,出现一个error,是由于windows的IE版真相对vs2008过低,提示sdk中一个错误。找到vtkMFCwindow.cpp,将前面的宏定义修改为:
#ifndef WINVER
#define WINVER 0x0501//你可改为更高版本
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500 // 这是我改的
#endif
另外还有一个错误:vtkio.dll延迟加载失败,改成添加vtkio.lib文件
(7)生成结束后,在解决方案里找到“INSTALL”,右击-->调试-->启动新实例,它会把之后实现 vtk 项目需要的“.h, .lib, .dll, .exe“集中输出到一个位置,位置是在第3步cmake生成时,结果框中有个“cmake_install_prefix”,就是它指示的位置,也可以修改其值。默认情况下,“.h, .lib, .dll, .exe“会被放到 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 已跳过 ==========
这个时候只要修改之前指定的“Where to build the binaries”的 VS2010 工程项目输出目录中的cmake_install.cmake文件中的CMAKE_INSTALL_PREFIX项即可,如下,把它改至D:/Program Files/VTK:
# 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'系统找不到指定文件
不必管它,只要不报错就行
(8)这个 VS2010 vtk 项目可以生成 ”Debug, Release, MinSizeRel, RelWithDebInfo” 四种模式所需要的“.h, .lib, .dll, .exe“文件,可以通过修改项目的配置并重复5)6)两步来生成,为了避免文件覆盖,需要将前一次生成的文件放到其他目录下(我就编译了Debug模式,其他的没试过,一般来说也用不到的吧=.=)
(9)至此,vtk编译已经完成了,我们可以进行测试了,新建一个控制台空项目,新建一个cpp源代码文件,将以下代码拷入:
[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:
参照上一篇博客