在计算机视觉领域,openCV(Open Source Computer Vision Library)无疑是最为流行和功能强大的开源库之一,它提供了丰富的图像处理和计算机视觉算法,极大地简化了开发流程,尽管Visual Studio 2010(简称VC2010)是一款较为古老的集成开发环境(IDE),但在一些特定的遗留项目或教学环境中,我们仍可能需要将OpenCV与之结合使用,本文将详细介绍如何在VC2010中配置OpenCV,整个过程清晰明了,旨在帮助开发者顺利完成环境搭建。
准备工作:下载与安装
在开始配置之前,确保您的计算机上已经成功安装了Visual Studio 2010,我们需要获取与VC2010兼容的OpenCV版本。
选择合适的OpenCV版本: 现代版本的OpenCV(如3.x, 4.x)通常需要更高版本的Visual Studio(如VS2015及以上)进行编译,直接与VC2010配合使用会遇到兼容性问题,对于VC2010,最稳定且推荐的选择是OpenCV 2.4.x系列,这个系列的最后一个版本是2.4.13.6,它对VC2010(对应vc10编译器)提供了完美的支持。
您可以访问OpenCV的官方发布历史页面,找到并下载OpenCV 2.4.13.6的Windows版本,下载完成后,您会得到一个类似于
opencv-2.4.13.6-vc10.exe
的可执行文件。
解压OpenCV: 运行该可执行文件,它实际上是一个自解压程序,建议将其解压到一个路径简洁且不含中文字符的目录下,,解压完成后,您会在C盘根目录下看到一个名为的文件夹,其内部结构主要包含和两个目录,我们后续的配置主要依赖于目录中的文件。
第一步:配置系统环境变量
为了让操作系统能够在任何位置找到OpenCV的动态链接库(DLL文件),我们需要配置系统的环境变量。
为了保险起见,可以同时添加这两个路径,如果原变量值末尾是 ,修改后应为
...;C:opencvbuildx86vc10bin;C:opencvbuildx64vc10bin
重要提示: 环境变量修改后,需要重启已经打开的命令提示符或Visual Studio才能生效,最稳妥的方式是重启计算机。
第二步:在VC2010中配置项目属性
环境变量配置完成后,我们就可以在VC2010中创建项目并进行具体配置了,这里我们以创建一个64位的控制台应用程序为例。
创建新项目
打开属性管理器 为了方便地将配置应用到多个项目或不同配置(Debug/Release),我们使用“属性管理器”来创建属性表。
创建并配置属性表
配置包含目录和库目录 在属性页对话框中:
配置链接器输入
| 模式 | 需要添加的文件(以2.4.13.6为例) |
|---|---|
opencv_core2416d.lib
opencv_imgproc2416d.lib
opencv_highgui2416d.lib
opencv_features2d2416d.lib
opencv_calib3d2416d.lib
opencv_ml2416d.lib
opencv_video2416d.lib
opencv_objdetect2416d.lib
opencv_contrib2416d.lib
opencv_legacy2416d.lib
opencv_flann2416d.lib
|
|
opencv_core2416.lib
opencv_imgproc2416.lib
opencv_highgui2416.lib
opencv_features2d2416.lib
opencv_calib3d2416.lib
opencv_ml2416.lib
opencv_video2416.lib
opencv_objdetect2416.lib
opencv_contrib2416.lib
opencv_legacy2416.lib
opencv_flann2416.lib
|
注意:
为
Release | x64
配置也创建一个属性表(如
OpenCV_x64_Release.props
),并填入Release模式的库文件,这样,项目配置就完成了。
第三步:编写测试代码验证配置
配置完成后,我们需要编写一段简单的代码来验证环境是否搭建成功。
#include#include int main(){// 读取一张图片(请确保图片路径正确,或将图片放在项目目录下)cv::Mat image = cv::imread("test.jpg");// 检查图片是否成功加载if (image.empty()){std::cerr << "无法加载图片,请检查图片路径!" << std::endl;return -1;}// 创建一个名为 "Test Image" 的窗口cv::namedWindow("Test Image", cv::WINDOW_AUTOSIZE);// 在窗口中显示图片cv::imshow("Test Image", image);// 等待用户按键cv::waitKey(0);return 0;}
相关问答FAQs
Q1: 为什么强烈推荐在VC2010中使用OpenCV 2.4.x版本,而不是尝试更新版本?
主要原因是编译器兼容性,Visual Studio 2010使用的是VC10编译器,它对C++11标准的支持非常有限,从OpenCV 3.0版本开始,其代码库大量使用了C++11及更高版本的特性,这些特性无法被VC10编译器正确识别和编译,导致在配置和编译时会遇到大量的错误,而OpenCV 2.4.x系列的最后几个版本是在C++11普及前发布的,其代码完全兼容VC10编译器,因此能够无缝、稳定地工作在VC2010环境中,避免了复杂的源码重编译工作。
Q2: 每次新建一个项目都需要重新配置包含目录、库目录和链接器输入吗?有没有更高效的方法?
是的,有更高效的方法,这正是我们在步骤中引入“属性表”的原因,属性表(文件)将所有配置信息(如目录、依赖项等)封装在一个独立的文件中,当您完成第一次配置并保存了
OpenCV_x64_Debug.props
和
OpenCV_x64_Release.props
后,对于任何新的项目,您只需要打开“属性管理器”,右键点击对应的配置项(如),选择“添加现有属性表”,然后浏览到您之前保存的那两个文件并添加即可,整个过程只需几秒钟,无需再次手动设置每个参数,极大地提升了开发效率,您可以将这些通用的属性表文件保存在一个固定的位置,方便所有项目共享使用。
在Visual Studio下报错fatal error C1083: Cannot open include file: 'cv.h': No such file or directory
不知道你安装OpenCV没有,没有就需要安装,安装后见如下操作: 在VS的项目设置中添加openCV的头文件路径。 还有,设置这些引用等。 菜单Tools->Options->Directories:先设置lib路径,选择Library files,在下方填入路径: C:\Program Files\OpenCV\lib 然后选择include files,在下方填入路径: C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\ml\include C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\cvcam\include 然后选择source files,在下方填入路径: C:\Program Files\OpenCV\cv\src C:\Program Files\OpenCV\cxcore\src C:\Program Files\OpenCV\cvaux\src C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\cvcam\src\windows 项目设置 每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。 菜单:Project->Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library modules附加上
错误 1 error LNK1104: 无法打开文件“opencv_calib3d244d.lib”
需要在你的项目-属性中修改链接器的选项 附加库,把你的lib库的目录改为opencv 2.4.10lib库文件所在的目录。输入项,把你的这些lib文件名称写在输入项中
我用的是WIN7旗舰版,在VC6.0加载opencv功能运行工程时程序总是报错cxcore100.dll文件丢失.
我的是旗舰版的,我把VC6.0装在D盘里就可以了,装C盘总是有问题。 那个一开始的什么提示点上“以后不再显示”就可以了,没影响。 对了,安装的时候有个检查环境“check environment”(英文好像是这样)一定不要勾选!














发表评论