OpenCV 之Hello world篇
2014-08-03 17:27
519 查看
Step1: 准备环境
OpenCV 在github上下载最新源码:https://github.com/Itseez/opencv
CMake 下载最新3.0 http://www.cmake.org/cmake/resources/software.html
VS2013
安装git
TBB 下载https://www.threadingbuildingblocks.org/ 线程构建模块
Step2: 借助CMake生成VS2013的解决方案
新建一个OpenCVLatest目录,然后用git clone 下最新的OpenCV 源码。
OpenCV 在github上下载最新源码:https://github.com/Itseez/opencv
CMake 下载最新3.0 http://www.cmake.org/cmake/resources/software.html
VS2013
安装git
TBB 下载https://www.threadingbuildingblocks.org/ 线程构建模块
Step2: 借助CMake生成VS2013的解决方案
新建一个OpenCVLatest目录,然后用git clone 下最新的OpenCV 源码。
git clone https://github.com/Itseez/opencv.git[/code]
在OpenCVLatest 目录下,新建一个build\buildvs2013x64 目录。
打开CMake软件,进行配置:
1)在Where is the source code => OpenCV的源代码
2)Where to build the binaries =>OpenCVLatest\build\buildvs2013x64
3)点击"Configure" 按钮,在弹出的对话框中,选择“Visual Studio 12 Win64”,使用默认的本地编译器,然后点击”Finish“
4) 勾选"WITH_TBB" (滑动到底部)
并修改TBB_INCLUDE_DIRS 的值,为解压TBB的include目录。 ==> OpenCVLatest\tbb42_20140601oss\include
5) 点击"Configure" 按钮, 直至没有红色标记的出现。
6)点击”Generate“ 按钮,生成VS2013的工程。
Step3:编译OpenCV解决方案
打开OpenCV.sln,
选择CMakeTargets下的INSTALL 工程,点击生成Debug和Release版本的dll和lib库。
至此,编译就OK了。
PS:添加OpenCV环境变量,Value为:D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12
Step4: 新建VC++ win32 应用程序,工程名为:HelloWorldOpenCV
”右键“-> Configuration Properties -> Configuration Manager 新建解决方案平台,选择x64,其他默认;
在属性管理器中,选择Debug|x64, 新建OpenCV249_X64_Debug的属性表,然后进行如下配置:
右键属性
Common Properties->VC++ Directories
Include Directories 输入:$(OpenCV)\..\..\includeLibrary Directories:$(OpenCV)\lib
Linker->Input
Additional Dependencies 中输入:opencv_calib3d300d.lib opencv_core300d.lib opencv_cuda300d.lib opencv_cudaarithm300d.lib opencv_cudabgsegm300d.lib opencv_cudacodec300d.lib opencv_cudafeatures2d300d.lib opencv_cudafilters300d.lib opencv_cudaimgproc300d.lib opencv_cudastereo300d.lib opencv_cudawarping300d.lib opencv_features2d300d.lib opencv_flann300d.lib opencv_highgui300d.lib opencv_imgcodecs300d.lib opencv_imgproc300d.lib opencv_ml300d.lib opencv_nonfree300d.lib opencv_objdetect300d.lib opencv_optim300d.lib opencv_photo300d.lib opencv_shape300d.lib opencv_stitching300d.lib opencv_superres300d.lib opencv_ts300d.lib opencv_video300d.lib opencv_videoio300d.lib opencv_videostab300d.lib
类似,新建OpenCV249_X64_Release的属性表配置如下:
Release:
右键属性
Common Properties->VC++ Directories
Include Directories 输入:$(OpenCV)\..\..\includeLibrary Directories:$(OpenCV)\lib
Linker->Input
Additional Dependencies 中输入:opencv_calib3d300.lib opencv_core300.lib opencv_cuda300.lib opencv_cudaarithm300.lib opencv_cudabgsegm300.lib opencv_cudacodec300.lib opencv_cudafeatures2d300.lib opencv_cudafilters300.lib opencv_cudaimgproc300.lib opencv_cudastereo300.lib opencv_cudawarping300.lib opencv_features2d300.lib opencv_flann300.lib opencv_highgui300.lib opencv_imgcodecs300.lib opencv_imgproc300.lib opencv_ml300.lib opencv_nonfree300.lib opencv_objdetect300.lib opencv_optim300.lib opencv_photo300.lib opencv_shape300.lib opencv_stitching300.lib opencv_superres300.lib opencv_ts300.lib opencv_video300.lib opencv_videoio300.lib opencv_videostab300.lib
HelloWorldOpenCV 的demo如下:#include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; int main(int argc, char **argv) { Mat img = imread("2.jpg"); if (img.empty()) { cout << "打开图像失败!" << endl; return -1; } namedWindow("image", CV_WINDOW_AUTOSIZE); imshow("image", img); waitKey(); return 0; }
如果没有其他问题,就可以正常运行,弹窗窗体显示图片了。
注意图片,放在C++ 源文件目录就可以了。
遇到的问题:
1) 提示tbb_debug.dll 找不到
解决方案:
把OpenCVLatest\tbb42_20140601oss\bin\intel64\vc12 目录下的tbb_debug.dll 文件拷贝到 OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin 目录即可。
2)无法启动,提示:
HelloWorldOpenCV.exe' (Win32): Loaded 'D:\workspace\HelloWorldOpenCV\x64\Debug\HelloWorldOpenCV.exe'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin\opencv_core300d.dll'. Cannot find or open the PDB file.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\msvcp120d.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\msvcr120d.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin\tbb_debug.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin\opencv_highgui300d.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\lpk.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\usp10.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\advapi32.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin\opencv_imgcodecs300d.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin\opencv_imgproc300d.dll'. Cannot find or open the PDB file.
'HelloWorldOpenCV.exe' (Win32): Loaded 'D:\android\workspace\OpenCVLatest\build\buildvs2013x64\install\x64\vc12\bin\opencv_videoio300d.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\ole32.dll'. Symbols loaded.
'HelloWorldOpenCV.exe' (Win32): Loaded 'C:\Windows\System32\oleaut32.dll'. Symbols loaded.
解决方法:
1. Ctrl + F5运行就可以了
2. 在cmd命令行下执行程序。
3. 把"Microsoft Symbol Servers"勾上(Tools -> Options -> Debugging -> Symbols).
相关文章推荐
- opencv程序: a hello world programming
- OpenCV iOS Hello¶
- 【opencv编程报错】helloOpencv.exe 中的 0x750ccbb2 处有未经处理的异常
- hello OpenCV
- Spring Web Service 学习之Hello World篇2
- OpenCV iOS Hello world
- Spring Web Service 学习之Hello World篇
- example OpenCV Hello World
- Java RMI之HelloWorld篇
- Opencv Hello World
- OpenCV之一Hello, Lena!
- Android学习七---Hello OpenCV samples
- Android学习七---Hello OpenCV samples
- 交叉编译opencv3.1.0和opencv_contrib/,在R16上运行HelloOpencv程序
- Java RMI之HelloWorld篇
- python笔记之hello world篇
- opencv hello.obj : error LNK2001: unresolved external symbol _cvNamedWindow
- Java RMI之HelloWorld篇
- AndroidWear开发之HelloWorld篇
- Java RMI之HelloWorld篇