为Visual Studio安装openCV 2.4 for C / C ++
我一直在尝试在Windows 7 for C / C ++上为Visual Studio 2010安装OpenCV(版本2.4.1和2.4.2)。
我一直在关注这个教程: http : //docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html
我跳过安装第三方软件(除了python 2.7和zlib,来自这里: http : //gnuwin32.sourceforge.net/packages/zlib.htm )。
我运行cmake,然后从openCV构建目录中打开openCV.sln,等待visual studio加载然后构建它。 Visual Studio提供了200个错误,这些错误只是以下两次重复多次:
错误C1083:无法打开包含文件:’unistd.h’:没有这样的文件或目录
错误LNK1104:无法打开文件’…. \ lib \ Debug \ opencv_core241d.lib’
“OpenCV构建目录”/ bin / Release不包含任何* .exe文件,只有大量* .pdb文件,其中我可以看到contours.pdb。 教程说我应该在那里看到contours.exe。
由于没有* .exe文件,我理解在构建过程中遇到的两个错误是至关重要的。 我会很感激能帮助我解决问题的任何想法。
以下对构建步骤的解释应该可以帮助您构建它:
-
安装cmake – 这是所有平台都需要的
-
cd进入解压缩的目录并创建一个名为release(或任何其他名称)的新目录
-
从这个目录中,运行
cmake ..
-
您应该在release目录中找到OpenCV.sln文件。
-
使用Visual Stuido打开它并运行构建。
-
来吧,享受Opencv
我也遇到了一些困难 – 文档只是略微过时了。
此解决方案基于本教程: http : //opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010_CMake
以下是我使用Visual C ++ 2010 Express获取opencv 2.4.2 hello world示例的确切步骤:
抓住源代码
下载opencv。
将opencv解压缩到C:\
构建二进制文件
下载cmake。 打开cmake gui ..
源代码在哪里:C:/ opencv
在哪里构建二进制文件:C:/ opencv / build
单击“配置” – 为生成器选择“Visual Studio”10单击“生成”。
在C:\ opencv \ build中,您现在应该看到OpenCV.sln。
使用VS C ++ Express打开解决方案文件并构建它。
设置hello world项目
在VS中创建一个新项目。 选择控制台应用程序并勾选预编译的标题。 右键单击解决方案文件,然后选择属性。
在VC ++目录窗口中,添加以下内容:
包含目录:C:\ opencv \ build \ include; C:\ opencv \ build \ include \ opencv; C:\ opencv \ build \ include \ opencv2
库目录:C:\ opencv \ build \ lib \ Debug
源目录:C:\ opencv \ build \ include
在C ++ – > Linker – > Input中,将以下内容添加到Additional Dependencies:
opencv_core242d.lib opencv_highgui242d.lib
Hello World Content
将教程中建议的内容更改为:
#include "stdafx.h" #include #include #include int _tmain(int argc, _TCHAR* argv[]) { IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg"); cvNamedWindow("Image:",1); cvShowImage("image:",img); cvWaitKey(); cvDestroyWindow("Image:"); cvReleaseImage(&img); return 0; }
将图像(或任何图像)放在项目目录中。
现在构建并点击Debug,它应该工作。 希望这有助于某人。
我不能发表评论所以我必须作为答案。
@ go4sri我按照你所说的并用Visual Studio 2010编译OpenCV但我不知道如何配置属性文件以及放在Library目录中的文件夹,包含目录……我需要一些帮助。
目前我放了:
Include目录中的C:\ opencv \ build \ include
库目录中的C:\ opencv \ Release \ lib \ Debug。 (我构建到Release文件夹中)
但我得到了未解决的外部符号。
error LNK2019: unresolved external symbol "public: static class cv::MatExpr __cdecl cv::Mat::zeros(int,int,int)" (?zeros@Mat@cv@@SA?AVMatExpr@2@HHH@Z) referenced in function "public: void __thiscall CtestDlg::OnBnClickedOk(void)" (?OnBnClickedOk@CtestDlg@@QAEXXZ)
编辑1:
我通过在输入链接器 – > input->附加依赖项中添加.lib来解决问题,但现在我有另一个问题。 它告诉我它找不到dll opencv_core242d.dll。
编辑2:
将所有dll放在发行版(用于发布)或调试(用于调试dll)中解决问题,但我不明白为什么我必须这样做。 它找不到自己在哪里?