图像处理的学习
来源:互联网 发布:java下载64位 win7 编辑:程序博客网 时间:2024/05/23 16:53
前两天学习了c++,感觉一直学习着也不是办法,于是今天看了看opencv的论坛,看到了一个MFC跟opencv的结合。里面有一个例子,于是下下来,下面就根据这个例子学习MFC,还可以学习图像处理跟opencv。好,第一个反应就是编译运行这个软件。
首先的是安装opencv1.0.
具体参考是
http://www.opencv.org.cn/index.php/VC6%E4%B8%8B%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AEOpenCV1.0
发下例程链接:
http://www.opencv.org.cn/index.php/%E5%9C%A8MFC%E4%B8%AD%E4%BD%BF%E7%94%A8OpenCV
调试了这个程序。会出现如下的一系列问题,具体参考了
http://www.cnblogs.com/mlv5/archive/2011/02/25/1964355.html
发现学习是一个发现问题解决问题的一个过程,想这么一个问题,很有可能网上就找不到任何资料,而这个问题就需要我们好好的分析,而这个能力就要我们培养。
1、第一个问题,也许是MFC初学者常犯的错误:fatal error C1083: Cannot open precompiled header file: 'Release/CVMFC.pch': No such file or directory
属于MFC基本问题,只需要执行build->rebuild all即可,应该是与StdAxf这系列文件有关。原因应该还复杂一些,但是现在我只注意到这一个。
2、当编译通过时,出现了如下错误
Linking...
CameraDSA.obj : error LNK2001: unresolved external symbol _IID_ISampleGrabber
CameraDSA.obj : error LNK2001: unresolved external symbol _CLSID_NullRenderer
CameraDSA.obj : error LNK2001: unresolved external symbol _CLSID_SampleGrabber
CameraDSA.obj : error LNK2001: unresolved external symbol _LOOK_UPSTREAM_ONLY
CameraDSA.obj : error LNK2001: unresolved external symbol _CLSID_CaptureGraphBuilder2
CameraDSA.obj : error LNK2001: unresolved external symbol _IID_ICaptureGraphBuilder2
Release/CVMFC.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.
CVMFC.exe - 7 error(s), 0 warning(s)
可以看出,是和CameraDSA.cpp有关。而CameraDSA.cpp只引用了一个头文件以及库,在程序中预处理代码如下
#include "stdafx.h" // 2010.8.14 修改
#pragma comment(lib,"Strmiids.lib")
可以看出,这个程序需要用例程中的DirectShow\Lib文件夹下的strmiid.lib文件。当我们在tools->option->directories中的lib file中把此文件夹添加到最后时,我们惊奇地发现,继续编译仍然是这7个错误。
究竟是否使用了这个库文件,我们可以通过修改库文件名称来判断,将此句改为:
#pragma comment(lib,"Strmiids1.lib")
LINK : fatal error LNK1104: cannot open file "Strmiids1.lib"
看来VC++的确能找到strmiids.lib这个文件。
而究竟例程中包含的这个库文件strmiid.lib是否含有_IID_ISampleGrabber这些外部符号呢?可以在windows中的cmd模式下通过这条命令来分析strmiid.lib文件:
C:\Program Files\Microsoft Visual Studio\VC98\Bin>dumpbin f:\CVMFC\DirectShow\Lib\strmiids.lib /all f:\a.txt
即lib文件的主要信息都打印到了a.txt中。
显示如下:
Dump of file f:\CVMFC\DirectShow\Lib\strmiids.lib
File Type: LIBRARY
Archive member name at 8: /
3DEDB7C8 time/date Wed Dec 04 16:07:36 2002
uid
gid
0 mode
5AA7 size
correct header end
854 public symbols
...
B83A _IID_ISampleGrabber
...
既然例程中包含的strmiid.lib含有这些外部符号,那么可能的原因只有一个,就是windows系统SDK包含了strmiid.lib,而这货因为版本过高而在VC++6.0中无法支持,但VC++6.0检查到C:\Program Files\Microsoft Visual Studio\VC98\LIB中的strmiid.lib发现不兼容,就只报出这7个错误,不向下查找了自备的strmiid.lib了。
解决方法非常简单,但非常有用:就是在tools->option中的lib file把例程的lib文件夹前置到最顶头,就发现这7个错误消失了。
3、最后一个问题比较简单,网上也有相应的答案
could not execute Invalid directory
win32 error 267
方法:分别设置program->setting中的Release和Debug中的 可执行调试的话 和 工作目录 一致即可。
- 图像处理的学习
- 图像处理的基础学习
- 我的图像处理的学习生涯
- 学习图像处理的好地方
- 【OpenCV学习】图像的形态处理学
- OpenCV学习笔记:基本的图像处理
- Android学习之图像的处理
- python图像处理模块Pillow的学习
- 搭建一个学习图像处理的平台
- 开始我的图像处理学习
- 图像处理提取图像的奇数行列-学习笔记1
- 图像处理(图像学习)的基础必备知识
- 图像处理学习
- 图像处理学习笔记
- 图像处理学习开始
- 图像处理学习1
- 图像处理学习资料
- 图像处理--机器学习
- 设计模式之观察者模式与事件委托
- OpenMP的学习
- 从信息论到哈弗曼树
- 国内大学毕业论文LaTeX模板集合
- Computer Vision Resources
- 图像处理的学习
- 二 图像处理opencv mfc学习
- 计算机视觉方向的一些顶级会议和期刊
- 涉足计算机视觉领域要知道的1
- 涉足计算机视觉领域要知道的2
- 计算机视觉牛人
- 判别模型和生成模型
- Chrome浏览器,An invalid form control with name='' is not focusable. 问题处理
- 405 Method Not Allowed