视频:http://www.sxzhongrui.com/v_show/id_XNTU4NTM2MDAw.html 首先是下载opencv,我下载的是opencv2.4.9。下载后,双击exe进行安装。然后配置环境变量。右键“计算机”->“属性”->“高级系统设置”->“环境变量...”->在用户变量“D:\opencv\opencv\build\”中的路径变量中再添加一个值x86 \vc10\bin;"会做。根据你安装的系统和VS版本选择x86和vc10。您也可以将它们都添加。接下来打开vs2010,新建一个win32控制台程序(随便起个名字吧,这个工程主要是为了设置用的),进入“项目”->“属性”->VC++目录,找到“VC++目录” ,然后看到右侧的“包含目录”,单击其下拉框箭头,出现“编辑”,再次单击。添加以下路径 D:\opencv\opencv\build\include D:\opencv\opencv\build\include\opencv D:\opencv\opencv\build\include\opencv2 (opencv版本不同,这里添加的东西不同。小时候用的是vc6.0 opencv....)设置好后,找到“库目录”,用同样的点击方式,改成“D:\opencv\opencv\build\x86\vc10 \lib "添加进去。在左侧“链接器”下查找“输入”,在右侧找到“附加依赖项”,使用相同的点击模式,将以下 lib 添加到 opencv_core249d.lib opencv_imgproc249d.lib opencv_highgui249d.lib opencv_ml249d.lib opencv_video249d。 lib opencv_features2d249d.lib opencv_calib3d249d.lib opencv_contrib249d.lib opencv_legacy249d.lib opencv_flann249d.lib opencv_gpu249d.lib (这里添加的东西因项目而异,我看了教程程力里是这样写的,也是这样写的。任何没有测试过的人都可以不用它)基本上这足以完成它。测试代码: // #include #include #include using namespace cv;使用命名空间 std; int main() { Mat img = imread("pp.jpg"); if (img.empty ()) { cout << "error"; return -1; } imshow("pp的靓照", img); waitKey(); return 0; } 以上如果出现错误:模块计算机类型“x64”与目标计算机类型“X86”冲突 win8 下,安装的VS2010,然后搭配opencv2.4.9运行,报错为:fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突 。通过网上查询,给错的答案大同小异,但是依然有很多朋友按照网上的答案无法解决这个问题,以下是我的解决方案 (曾参考http://www.sxzhongrui.com/qtbmp/article/details/7273191?reload),仅供参考: 1、原因:win8下的64位系统,在运行程序的时候,需要的DLL必须是64位系统编译的,VS2008也必须在安装的时候,选择了64位编译的支持。如果安装的时候,已经选择了,那么出现该问题的解决办法,安装网上常规的思路即可。既: ?????? (1)右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。 ????????(2)右键项目名,选择清理解决方案,清理完之后选择X64平台编译器,然后重新生成解决方案,便可以调试成功。 注:按照网上搜到的方法执行完以上步骤后,我的程序仍然报错,只是X86和X64的位置换了一下。。汗死。。于是折腾出一下步骤: 2、如果此时问题依然没有解决,则可能是系统包含的DLL文件是win32下编译的,则,需要把DLL换成64位系统编译的。比如opencv2.3.1,之前编译的就是win32下编译的,则需要重新编译,具体步骤如下: ????? (1)、右键解决方案->属性,选择平台为X64。如果没有该选项,请单击配置管理器并选择X64平台。如果没有此选项,请创建一个新的 X64 平台并选择它。 ???? (2)接下来,打开OpenCV.sln,右键清理,重新生成。注意配置管理器中选择x64平台,否则编译出来的版本仍然无法使用。 ??????? (3)编译完成后,配置DLL和Lib的路径后,就不会再出现上述错误了。

1。下载最新版本的OPENCV2.4.4 http://www.sxzhongrui.com/projects/opencvlibrary/files/opencv-win/2.4.4/OpenCV-2.4.4.exe/download然后解压并放入你选择的2中.下载VS2010在一个目录下? ?您可以到微软官网下载,然后安装。我就不详细说了 3、win8环境下,配置环境变量? 1.添加环境变量? ??右键计算机,->属性->高级系统设置->环境变量? ? ?添加路径路径:? ? ?在系统变量中,点击path,选择编辑,添加path路径如下? ? ?? ?新的OPENCV? ?四、、opencv在VS2010配置步骤? ? ?创建一个新的win32项目——没什么好说的? ?包括配置? ?打开项目:-查看->属性页->VC++目录->在include目录中添加include?? ??lib 配置? ?库目录“属性”->“配置属性”->“VC++目录”->“库目录”?? ?? 5、添加额外依赖 View->Property Page->Linker->Input->Additional dependency release 添加额外依赖 opencv_calib3d244d.libopencv_contrib244d.libopencv_core244d.libopencv_features2d244d.libopencv_flann244d.libopencv_gpu244d.libopencv_highgui244d.libopencv_im gproc244d.libopencv_legacy244d.libopencv_ml244d.libopencv_objdetect244d.libopencv_ts244d.libopencv_video244d。库?六、测试配置结果显示?测试码:?

/**************************************************** **************************

* OpenCV 2.4.4 测试例程

* 杜建建提供

**************************************************** **********************/

#include“stdafx.h”

#包括

使用命名空间 std;

使用命名空间 cv;

int _tmain(int argc, _TCHAR* argv[])

{

const char* imagename = "D://input//lena.jpg";

//从文件中读取图像

Mat img = imread(imagename);

//如果读取图像失败

if(img.empty())

{

fprintf(stderr, "无法加载图像 %s\n", imagename);

getchar();

返回-1;

}

//显示图像

imshow("图像", img);

//此函数等待按键。按键盘任意键返回

waitKey();

返回0;

}

测试结果显示:

七、遇到的问题

1)这个问题是我刚开始测试时出现的:

d:\opencv2.4.4\include\opencv2\opencv.hpp(46):致命错误C1083:无法打开包含文件:“opencv2/core/core_c.h”:没有这样的文件或目录

这主要是因为include目录下的include配置错误,改为

D:\opencv2.4.4\build\include\opencv2

D:\opencv2.4.4\build\include\opencv

D:\opencv2.4.4\build\include

就是这样,哈哈

2)图片文件目录问题

? ?可以使用绝对路径,如上面的代码

您也可以使用相对路径,但您的图片必须放置在当前工作目录中。比如我的照片放在

C:\Users\Dujian\Documents\Visual Studio 2010\Projects\lbpfacedemo0\lbpfacedemo0

?相对路径代码如下:

int _tmain(int argc, _TCHAR* argv[])

{

const char* imagename = ".//lena.jpg";//图片的相对路径

//从文件中读取图像

Mat img = imread(imagename);

//如果读取图像失败

if(img.empty())

{

fprintf(stderr, "无法加载图像 %s\n", imagename);

getchar();

返回-1;

}

//显示图像

imshow("图像", img);

//此函数等待按键。按键盘任意键返回

waitKey();

返回0;

}

8。参考

http://www.sxzhongrui.com/lovehatemath/article/details/8674367

非常感谢

??配置DirectShow开发环境(VS2010,64位Win8系统)

目前,新版本的DirectShow并未包含在DirecxtX中,而是与Windows SDK一起打包发布。因此,您必须首先下载最新的Windows SDK,其中包含DirectShow头文件和库文件。

下载地址:http://www.sxzhongrui.com/en-us/download/details.aspx?id=8442

由于电脑安装的是64位Win8操作系统,所以选择下载GRMSDKX_EN_DVD.iso。如果是32位操作系统,则必须选择下载GRMSDK_EN_DVD.iso。下载安装后,Windows SDK默认安装到C:\Program Files\Microsoft SDKs\Windows\v7.1目录下。为了使用DirectShow的基类来开发应用程序,必须首先编译它的BaseClasses项目。一般会生成两个版本的基类库,一个是Debug版本,一个是Release版本,分别在调试和最终发布时使用。下面以生成Debug版本为例(生成Release版本类似),使用VS2010打开C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses下面的baseclasses项目文件,那么如果直接生成BaseClasses就会报错。首先要配置VS2010\VC++目录\include目录和库目录的常规属性。单击属性管理器视图,单击“调试|Win32”,在“调试”属性页中打开常规属性的子项,选择VC++目录,然后编辑“包含目录”和“库目录”。

包含目录包括:C:\Program Files\Microsoft SDKs\Windows\v7.1\Include C:\Program Files\Microsoft Visual Studio 10.0\VC\include

库目录包括:C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib

配置好VC++目录后,点击菜单中的Build\Configuration Manager,在配置项中选择Debug。关闭配置管理器页面后,点击Generate\Generate BaseClasses即可成功生成Debug版本的基类。基类库文件strmbasd.lib位于C:\Program Files\Microsoft SDKs\Windows\v7 .1\Samples\multimedia\directshow\baseclasses\Debug目录中。同样,Release版本的库文件strmbase.lib位于Relesas目录中。

在需要使用DirectShow基类开发应用程序的项目中,将基类的头文件和库文件所在目录添加到应用程序项目的VC++目录中(注意顺序,否则报错可能会被举报):

包括目录包括:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common

C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Include

C:\Program Files\Microsoft Visual Studio 10.0\VC\include

库目录包括:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug

C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

以上是当前工程配置的include目录和library目录。如果为VS2010配置了默认的包含目录和库目录,选择“Debug|Win32”后不要立即打开属性页。而是选择 Debug|Win32 的子项 Microsoft.Cpp.Win32.user 然后打开属性页,然后按照上面的方法配置目录,这样其他项目就可以通过 ? 继承父级或项目的默认设置。

另外,还需要添加:strmbasd.lib; winmm.lib;项目属性\配置属性\链接器\输入中的“依赖附件项”中的msvcrtd.lib(VC6中各项之间用空格分隔)打开即可,VS2010必须使用“;”和其他库文件分开,不然会出现很多错误:

1>Dialog1.obj:错误 LNK2001:无法解析的外部符号 _CLSID_FilterGraph 1>Dialog1.obj:错误 LNK2001:无法解析的外部符号 _IID_IGraphBuilder

......

错误 LNK2019:函数“public: int __thiscall CAMMsgEvent::WaitMsg(unsigned long)”中引用了无法解析的外部符号 __imp__timeGetTime@0 (?WaitMsg@CAMMsgEvent@@QAEHK@Z)

......

PS:学习Directshow自带的AmCap例子可以尽快提高你的DirectShow编程水平。

转载自:http://www.sxzhongrui.com/s/blog_48ef8bdd0101hc77.html

0条大师的评论