OpenCV 之Hello world篇


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 源码。 
git clone https://github.com/Itseez/opencv.git

在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)\..\..\include
Library 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)\..\..\include
Library 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).

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值