00 面对面教你如何在VS2010下配置OPENCV 2.1

Post date: 2012/4/10 上午 08:31:05

heyoup » 2010-04-25 20:42

VS2010是微软刚刚推出的一款强势集成开发环境,据说其地位与曾经的VS6.0好有一比,本人几日前刚刚转移到VS2010开发平台下,由于近日无意中在SourceForge上看到OPENCV在4月6日发布2.1版,于是冲动之下卸载了2.0版,开始手动下载OPENCV 2.1版,感受一下新版本的诱惑之处。

闲话少叙,我们步入正题。首先在SourceForge上下载OPENCV 2.1版的源代码文件http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/OpenCV-2.1.0-win.zip/download,然后我们来到CMAKE的官方网站下载CMAKE的2.8.1版http://www.cmake.org/files/v2.8/cmake-2.8.1-win32-x86.exe,接下来,我们在http://www.threadingbuildingblocks.org/uploads/77/151/3.0/tbb30_20100406oss_win.zip这里下载INTEL TBB 3.0(此处我们一般下载STABLE RELEASE,因为商业版的版本为2.0,我不能保证它完全支持VC10.0,所以,建议大家还是下载STABLE RELEASE里面的最新版本),到目前为止,所有的准备工作都已经做好啦(还有一个前提就是你的机器上一定要有VS2010才可以哦)。

接下来,我们按照顺序,首先安装CMAKE 2.8.1,然后解压OPENCV 2.1到你将要放置OPENCV的地方,接着,解压INTEL TBB 3.0,我是将OPENCV和TBB都放在PROGRAM FILES里面啦。打开CMAKE 2.8.1,在Where is the source code后面填写(或者选择)OPENCV 2.1的安装目录,在Where to build the binaries里填写你将要编译好的OPENCV 2.1 FOR VS2010解决方案的文件夹,接着点击Configure按钮,如果你初期在Where to build the binaries里填写的目录是不存在的,CMAKE将会询问你是否新建一个以此为名称的文件夹,点击是继续,在后续出现的对话框中选择Visual Studio 10,下面的选项选择Use default native compilers,点击Finish继续。过30秒左右之后会出现一个配置窗口(此处注意在CMAKE配置的时候是不能够打开VS2010的),然后勾选BUILD_SHARED_LIBS,BUILD_TESTS,OPENCV_BUILD_3DPARTY_LIBS,以及下面的WITH_JASPER,WITH_JPEG,WITH_PNG,WITH_TBB,和WITH_TIFF选项,勾好后再次点击Configure,之后再配置窗口最上面会出现TBB_INCLUDE_DIR-NOTFOUND字样的红色选项,此处为CMAKE找不到INTEL TBB的包含文件为之所至,将INTEL TBB 3.0里面的INCLUDE文件夹路径(注意是INCLUDE,不是INCLUDE里面的子文件夹)定位到该配置属性的路径里,再次点击Configure,在TBB_LIB_DIR处又会出现红色一行,此处为INTEL TBB的库文件位置,此处必须将路径定位到含有LIB文件的位置,比如我的安装位置是D:/Program Files/Intel TBB 3.0/lib/ia32/vc10,也就是说,在lib文件夹下会有子文件夹,必须定位到子文件夹对应的VC版本文件夹里去,这里由于是配置VS2010,所以我们选择VC10文件夹,ia32子文件夹是32位系统,此处应根据对应操作系统选择。然后,我们再次点击Configure,此时所有红色行已经变为白色,同时在下方的信息里面会有一条为Use TBB:YES的字样,证明我们已经将INTEL TBB配置完毕,然后点击Generate,完成后在生成文件夹下会出现一个VS2010的解决方案文件OPENCV.SLN,双击打开后,出现OPENCV 2.1的所有工程项目,先不要着急编译,首先点击Solution Explorer里面的Property Manager,依次展开ALL_BUILD—Debug|Win32—右键单击Microsoft.Cpp.Win32.user,选择Properties,然后选择VC++ Directories,在Executable Directories里面将INTEL TBB 3.0的可执行路径填写到里面,此处与LIB一样,必须定位到VC10才可以,例如我的是D:\Program Files\Intel TBB 3.0\bin\ia32\vc10,将Include Directories定位到Intel TBB的Include文件夹即可无需再往深入定位,在Library Directories里填写Intel TBB的LIB文件位置,定位到VC10文件夹,然后单击确定之后,将选项卡切回到Solution Explorer,将编译模式切换为Debug模式,右键单击Solution OpenCV,选择Rebuild Solution,编译后在单击INSTALL项目,选择Build,之后将编译模式切换为Release模式,重新编译解决方案,再编译INSTALL项目,在你的解决方案文件夹里面会生成bin目录,include目录,lib目录,在VS2010里切回到Property Manager,像上面一样展开Microsoft.Cpp.Win32.user后选择Properties,然后再VC++ Directories里面增加OPENCV 2.1的可执行文件(bin),包含文件(include/opencv),以及库文件(lib),确定,退出并保存更改。到此OPENCV 2.1配置完成,在以后建立OPENCV项目时需在每一个项目里面添加依赖库,方法是在解决方案管理器里面右键选择项目,选择属性,然后再链接器里面选择输入,在依赖库里添加OPENCV的LIB文件夹里德LIB文件名称,文件名后面有小写字母“d”的为调试模式库,没有“d”的为发布模式库,即可。

http://www.microsoft.com/visualstudio/zh-cn/visual-studio-2010-launch?CR_CC=100347310&WT.mc_id=SEARCH&CR_SCC=100347310

heyoup

OpenCV小学生

帖子: 19

注册: 2010-04-25 19:36

FHLJ » 2010-04-27 16:24

opencv2.1 在VS2010 下需要,安装CMAKE 么?

我在VS2008下使用Opencv2.1时并不需要啊,只是opencv2.0 需要CMAKE 。

FHLJ

OpenCV幼儿园宝宝

帖子: 5

注册: 2010-03-23 8:44

heyoup » 2010-04-27 19:23

FHLJ 写道:

opencv2.1 在VS2010 下需要,安装CMAKE 么?

我在VS2008下使用Opencv2.1时并不需要啊,只是opencv2.0 需要CMAKE 。

因为OPENCV2.1版有专门对应VS2008的MSI安装包,如果我估计的没错的话你安装的是这个版本吧,如果在2010下的话,我建议还是自己重新编译一下为好哦。呵呵。

http://www.microsoft.com/visualstudio/zh-cn/visual-studio-2010-launch?CR_CC=100347310&WT.mc_id=SEARCH&CR_SCC=100347310

heyoup

OpenCV小学生

帖子: 19

注册: 2010-04-25 19:36

ollydbg23 » 2010-04-28 9:49

写得不错,我收入我的“精华区”里面了,谢谢!

本人不接受站内私人短信讨论技术问题,有问题请发贴讨论!!!

提问的智慧 OpenCV论坛中文搜索 论坛精华区

ollydbg23

OpenCV教授

帖子: 3111

注册: 2008-04-13 9:16

heyoup » 2010-04-28 19:14

ollydbg23 写道:

写得不错,我收入我的“精华区”里面了,谢谢!

嘻嘻,谢谢老大,我会继续写些觉得能帮助大家的东西的

http://www.microsoft.com/visualstudio/zh-cn/visual-studio-2010-launch?CR_CC=100347310&WT.mc_id=SEARCH&CR_SCC=100347310

heyoup

OpenCV小学生

帖子: 19

注册: 2010-04-25 19:36

ollydbg23 » 2010-04-28 21:02

我在MinGW下面,也折腾过一阵,先编译intel的TBB,再编译opencv2.1,最后也成功了,不过步骤也有点繁琐。。。。我暂时没有空写教程了,基本原理和你的类似。

本人不接受站内私人短信讨论技术问题,有问题请发贴讨论!!!

提问的智慧 OpenCV论坛中文搜索 论坛精华区

ollydbg23

OpenCV教授

帖子: 3111

注册: 2008-04-13 9:16

lmyanglei

OpenCV初中生

帖子: 34

注册: 2008-07-08 11:59

niubenbing » 2010-05-09 15:50

很好,学习了!

niubenbing

OpenCV初中生

帖子: 36

注册: 2010-05-03 19:52

luhaobo » 2010-05-21 10:39

你好,我按照你的教程在vs2010下配置opencv2.1但是总是会出现错误1>LINK : fatal error LNK1104: cannot open file 'cv210d.lib highgui210d.lib cxcore210d.lib',请问这是怎么回事呢?谢谢啦

luhaobo

OpenCV幼儿园宝宝

帖子: 1

注册: 2010-04-23 20:36

ollydbg23 » 2010-05-21 10:50

luhaobo 写道:

你好,我按照你的教程在vs2010下配置opencv2.1但是总是会出现错误1>LINK : fatal error LNK1104: cannot open file 'cv210d.lib highgui210d.lib cxcore210d.lib',请问这是怎么回事呢?谢谢啦

你的 cv210d.lib 等 的文件在哪里?要明确。然后看看VC里面的路径有没有设置对。

本人不接受站内私人短信讨论技术问题,有问题请发贴讨论!!!

提问的智慧 OpenCV论坛中文搜索 论坛精华区

ollydbg23

OpenCV教授

帖子: 3111

注册: 2008-04-13 9:16

cathyzhao » 2010-05-26 8:40

楼主,请问在VS2008下配置OPENCV2.1有什么不同?……搞不定了……

cathyzhao

OpenCV幼儿园宝宝

帖子: 3

注册: 2010-05-26 8:35

cathyzhao » 2010-05-26 16:14

呃……自己动手,丰衣足食……终于搞好了……真不容易……

cathyzhao

OpenCV幼儿园宝宝

帖子: 3

注册: 2010-05-26 8:35

littlecollin » 2010-05-28 17:04

编译没问题,但一运行程序就出错

'why.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file

'why.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB file

'why.exe': Loaded 'C:\OpenCV2.1\bin\cxcore210d.dll', Cannot find or open the PDB file

LDR: LdrpWalkImportDescriptor() failed to probe C:\OpenCV2.1\bin\cxcore210d.dll for its manifest, ntstatus 0xc0150002

Debugger:: An unhandled non-continuable exception was thrown during process load

The program '[3668] why.exe: Native' has exited with code -1072365566 (0xc0150002).

请问这是什么原因?

littlecollin

OpenCV幼儿园宝宝

帖子: 1

注册: 2010-04-13 17:13

netonion » 2010-05-28 21:42

老兄实在是太谢谢你啦

之前没加上tbb

结果弄了好几天都没build成功

一直说cannot open videoInput.lib

看了这贴加上tbb就好了

真是怪了

终于可以用上vs2010和opencv2.1

netonion

OpenCV小学生

帖子: 6

注册: 2010-05-26 23:55

sunbc0210 » 2010-06-11 12:53

Check for working C compiler using: Visual Studio 10

Could not copy from: D:/Program Files/CMake 2.8/share/cmake-2.8/Templates/CMakeVSMacros2.vsmacros

to: d:/ÎÒµÄÎĵµ/Visual Studio 2010/Projects/VSMacros80/CMakeMacros/CMakeVSMacros2.vsmacros

Check for working C compiler using: Visual Studio 10 -- works

Detecting C compiler ABI info

Could not copy from: D:/Program Files/CMake 2.8/share/cmake-2.8/Templates/CMakeVSMacros2.vsmacros

to: d:/ÎÒµÄÎĵµ/Visual Studio 2010/Projects/VSMacros80/CMakeMacros/CMakeVSMacros2.vsmacros

Detecting C compiler ABI info - done

Check for working CXX compiler using: Visual Studio 10

Could not copy from: D:/Program Files/CMake 2.8/share/cmake-2.8/Templates/CMakeVSMacros2.vsmacros

to: d:/ÎÒµÄÎĵµ/Visual Studio 2010/Projects/VSMacros80/CMakeMacros/CMakeVSMacros2.vsmacros

Check for working CXX compiler using: Visual Studio 10 -- works

Detecting CXX compiler ABI info

Could not copy from: D:/Program Files/CMake 2.8/share/cmake-2.8/Templates/CMakeVSMacros2.vsmacros

to: d:/ÎÒµÄÎĵµ/Visual Studio 2010/Projects/VSMacros80/CMakeMacros/CMakeVSMacros2.vsmacros

Detecting CXX compiler ABI info - done

Found PythonInterp: D:/Python26/python.exe

Found PythonLibs: D:/Python26/libs/python26.lib

IPP detected:

Parsing 'cvconfig.h.cmake'

CMake Warning (dev) at apps/haartraining/CMakeLists.txt:4 (link_directories):

This command specifies the relative path

.

as a link directory.

Policy CMP0015 is not set: link_directories() treats paths relative to the

source dir. Run "cmake --help-policy CMP0015" for policy details. Use the

cmake_policy command to set the policy and suppress this warning.

This warning is for project developers. Use -Wno-dev to suppress it.

General configuration for opencv 2.1.0 =====================================

Built as dynamic libs?: ON

Compiler:

C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /Zm1000 /EHsc- /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /MD /O2 /Ob2 /D NDEBUG /Zi

C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /Zm1000 /EHsc- /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1

Linker flags (Release): /STACK:10000000 /machine:X86 /INCREMENTAL:NO /debug

Linker flags (Debug): /STACK:10000000 /machine:X86 /debug

Image I/O:

JPEG: build

PNG: build

TIFF: build

JPEG 2000: build

Interfaces:

Old Python: 0

Python: ON

Python interpreter: D:/Python26/python.exe

Python numpy: 0

Use IPP: NO

Use TBB: NO

Build Documentation 0

Install path: D:/Program Files/OpenCV-2.1.0/VS2010

cvconfig.h is in: D:/Program Files/OpenCV-2.1.0/VS2010

-----------------------------------------------------------------

Configuring done

请指教!

sunbc0210

OpenCV幼儿园宝宝

帖子: 4

注册: 2010-05-21 18:45

yangwei86 » 2010-07-01 23:02

学习了,正好找这个呢

Contact me:

yangwei21atgmail.com

blog.csdn.net/effenberg11

yangwei86

OpenCV初中生

帖子: 34

注册: 2010-05-14 21:45

yangwei86 » 2010-07-05 0:26

一个关于directshow的小提示,之前我电脑里使用的是vs2008的版本,在编译vs2010的opencv解决方案时老是出现致命错误:windows\7.0A文件夹下的文件,原因就是为了在vs2008中能使用directshow,我安装了direct X 2007的版本,并设置在vs2008的vc++目录中,而安装vs2010后,他会自动继承你08中的设置,所以解决办法就是把vs2010中的vc++目录下的direct x 2007版本的include目录去除,有关directshow的解决方案请看:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=10467

Contact me:

yangwei21atgmail.com

blog.csdn.net/effenberg11

yangwei86

OpenCV初中生

帖子: 34

注册: 2010-05-14 21:45

seckcoder » 2010-07-09 19:54

我按你的方法仔细做了,但是运行时报"计算机中丢失cxcore210.dll",你所说的设置我都完成了,而且非常仔细,后来觉得不对又重新弄了一遍,还是出现相同的问题,这是什么原因?

还有,如果我把cxcore210.dll拷到项目文件夹中后却又不会弹出这种错误。

seckcoder

OpenCV幼儿园宝宝

帖子: 1

注册: 2010-07-09 19:47

liuqsss » 2010-08-04 9:56

将选项卡切回到Solution Explorer,将编译模式切换为Debug模式,右键单击Solution OpenCV,选择Rebuild Solution,编译后在单击INSTALL项目,选择Build

为什么我的solution explore里面没有solution OpenCV呢? 只有opencv_lapack和opencv_ffmpeg

小弟初学OpenCv,请楼主或是哪位路过的XDJM不吝赐教十分感谢!

liuqsss

OpenCV小学生

帖子: 15

注册: 2010-08-03 9:26

volkswageos » 2010-08-04 20:31

how to config opencv include and lib?

Yet the value of a friend can not be expressing by the clever grouping of letters,it is blood and flesh granting life to the world

volkswageos

OpenCV初中生

帖子: 26

注册: 2009-09-21 9:48

lwj2099 » 2010-08-08 23:46

volkswageos 写道:

how to config opencv include and lib?

你按照步骤来了?按步骤做就没什么问题啦。

我对这个帖子重新编辑了一下,改正了一些错误,并且补充了一些重要内容。见visual studio 2010下安装OpenCV及相关配置

lwj2099

OpenCV小学生

帖子: 6

注册: 2010-08-07 21:33

mqslove17 » 2010-10-08 18:26

“opencvhello.exe”: 已加载“C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\opencvhello\Debug\opencvhello.exe”,已加载符号。

“opencvhello.exe”: 已加载“C:\WINDOWS\system32\ntdll.dll”,已加载符号(去除源信息)。

“opencvhello.exe”: 已加载“C:\WINDOWS\system32\kernel32.dll”,已加载符号(去除源信息)。

“opencvhello.exe”: 已加载“E:\Program Files\OpenCV2.1\bin\cxcore210d.dll”,Cannot find or open the PDB file

LDR: LdrpWalkImportDescriptor() failed to probe E:\Program Files\OpenCV2.1\bin\cxcore210d.dll for its manifest, ntstatus 0xc0150002

调试器:: 在进程加载过程中引发了未处理的无法继续的异常

程序“[6872] opencvhello.exe: 本机”已退出,返回值为 -1072365566 (0xc0150002)。

求高手指点!!!

mqslove17

OpenCV幼儿园宝宝

帖子: 3

注册: 2010-09-21 12:58

silver0924 » 2010-10-24 13:35

我也遇到了上面的问题,“Skin_Detect.exe”: 已加载“D:\Program Files\OpenCV2.1\bin\cv210d.dll”,Cannot find or open the PDB file

silver0924

OpenCV小学生

帖子: 10

注册: 2010-07-23 10:13

lingyunbit » 2011-03-03 11:23

lz你好,我按照你的做法同时参考了其他大侠的指导教程,最后还是编译不通过啊~

问题见截图,期望高手释疑啊~

感激不尽!!!

附件

opencv求助.JPG (80.26 KiB) 被浏览 14809 次

lingyunbit

OpenCV初中生

帖子: 26

注册: 2011-03-02 15:24

lingyunbit » 2011-03-03 11:27

mqslove17 写道:

“opencvhello.exe”: 已加载“C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\opencvhello\Debug\opencvhello.exe”,已加载符号。

“opencvhello.exe”: 已加载“C:\WINDOWS\system32\ntdll.dll”,已加载符号(去除源信息)。

“opencvhello.exe”: 已加载“C:\WINDOWS\system32\kernel32.dll”,已加载符号(去除源信息)。

“opencvhello.exe”: 已加载“E:\Program Files\OpenCV2.1\bin\cxcore210d.dll”,Cannot find or open the PDB file

LDR: LdrpWalkImportDescriptor() failed to probe E:\Program Files\OpenCV2.1\bin\cxcore210d.dll for its manifest, ntstatus 0xc0150002

调试器:: 在进程加载过程中引发了未处理的无法继续的异常

程序“[6872] opencvhello.exe: 本机”已退出,返回值为 -1072365566 (0xc0150002)。

求高手指点!!!

我碰到的问题跟你的一样,你最后是怎么解决的啊?

谢谢啦