实用图像处理入门 - 2 - Windows平台下编译openCV

 

1 环境准备

  1. Visual Studio 2012
  2. opencv 2.4+ ( 目前是2.4.6, 下载链接 ). ( 假设已安装完毕, opencv安装目录以下用 {opencv} 表示 )
  3. CMake ( 下载链接, 用来编译 opencv )

2 详细步骤

安装好 CMake 后, 在开始菜单里找到 CMake(cmake-gui) 打开.

如下设置:

位置1: 填写 opencv 的安装目录. 

位置2: 填写你希望 build opencv 后的目标位置. 下文中用 {cvBuild} 表示.

image

填写好位置1和位置2后, 点击 位置3( Configure 按钮 ). 选择 Visual Studio 11 ( 针对 VS2012, 如果是其它版本, 选择对应的版本即可 ) 

image

点击位置4( 按钮 Generate ). 便可生成 opencv 项目.

完成后, 打开生成项目的目录( 上上图 位置2处 填写的目录 ). 双击 "OpenCV.sln”. 会启动 VS2012, 你会看到以下界面.

image

点击菜单栏 “BUILD –> Build Solution “ 开始构建整个解决方案.

构建过程可能需要比较长时间. 更可恨的是等这么长时间, 还得不到我们想要的结果: 会出现各种讨厌的 ERROR!

image

14胜 47负! 简直惨不忍睹. 查看输出日志, 发现罪恶的源头在这里:

1
9>D:\greenApps\opencvBuild2\3rdparty\zlib\zconf.h(449): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory

google一下, 发现很多人都遇到这个问题. 解决方案 如下 ( 原文链接 ):

新建文件 unistd.h. 文件内容如下:

1
2
3
4
5
6
7
8
/** This file is part of the Mingw32 package.
* unistd.h maps (roughly) to io.h
*/
#ifndef _UNISTD_H
#define _UNISTD_H
#include <io.h>
#include <process.h>
#endif /* _UNISTD_H */

把文件放到 {cvBuild}\3rdparty\zlib 里.

在 VS2012 里选择构件类型为“Release",如下图所示:

image

再次执行 “BUILD –> Build Solution”, 如果有某个Project构建”fiailed”, 重新构建即可.

打开 {cvBuild}/bin/Rlease 文件夹, 你会看到满满一屏的 *.dll 和 *.exe 文件就像丰收的果实一样带着挑逗的表情对你微笑~~~.

说多了都是累赘, 只有你自己亲自操作, 才能体会到满满的幸福:

image

此博客已迁移至blog.bookbook.in,以后不再更新
posted @ 2013-07-26 12:30  知明所以  阅读(3174)  评论(3编辑  收藏  举报