WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解

因为要做作业,昨晚在实验室捣腾了半天也没搞定,Goolge了半天也没个结果,今天才发现原来OpenCV的官网上,已经写很清楚了,今天再一试,轻轻松松就搞定了,看来不能过分迷信搜索引擎的力量

1. 安装好 Netbeans 6.7 并保证能编译 C++ 程序

这很容易,先安装好 Cygwin,再安装 Netbeans  就可以了,Netbeans 会自动搜索到 C/C++ 编译器,不需要你做任何设置,十分傻瓜式的

2 安装 OpenCV 2.0

这也很容易,下个 OpenCV 2.0,运行安装程序,注意其中有一步骤问是否要把 OpenCV 添加到系统目录中(英文),选择“是” ,就可以了

3. Netbeans 6.7 中设置 OpenCV 2.0

这是难点,参考 http://opencv.willowgarage.com/wiki/InstallGuide (打开网页,拖到最底有详细说明),我总结出整个步骤如下:

3.1 在 NetBeans 中新建一个 C++ 工程

找到 OpenCV2.0\samples\c 中的 image.cpp 文件,打开它,将里面的代码全部复制到 你新建工程的 main.cpp  中 (覆盖 原有的内容)

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第1张图片

按 F6 尝试编译运行,你会得到如下的错误提示:

main.cpp:1:67: cv.h: No such file or directory
main.cpp:2:21: highgui.h: No such file or directory

下一步,我们要来解决这个问题

3.2 添加 OpenCV 头文件目录

NetBeans 中,打开“项目” 面板,找到你刚才新建的项目,右键点“属性”,点“C++编译器” 一项,配置下拉列表中,选择“所有配置”,在“包含目录” 一栏,填上你 OpenCV 头文件所在的目录 (根据你安装OpenCV的实际情况),然后点“应用”,再点“确定”

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第2张图片

再按 F6 尝试编译运行,又会看到下一些错误提示,

/cygdrive/D/OpenCV2.0/include/opencv/cxoperations.hpp: In member function `void cv::Ptr<_Tp>::addref()':
In file included from /cygdrive/D/OpenCV2.0/include/opencv/cxcore.hpp:2243,
                 from /cygdrive/D/OpenCV2.0/include/opencv/cxcore.h:2123,
                 from /cygdrive/D/OpenCV2.0/include/opencv/cv.h:58,
                 from main.cpp:1:

主要是讲某某文件,哪一行出错,点开一看发现这些行都是include "cxoperations.hpp", 估计是 cxoperations.hpp 这个文件有问题

下面的步骤将解决这个问题

3.3 修改 cxoperations.hpp 文件

用 NetBeans 打开 cxoperations.hpp (在OpenCV Include 目录下), 找到 68 行 ,将它修改成下面的样子(加上 || __MINGW__ )

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第3张图片

接着要在 g++ 编译选项中,添加 -D __MINGW__  类似步骤 3.2 ,如下图

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第4张图片

再按 F6 尝试编译运行,这次编译没有错了,但是出现大量的undefined reference XXX 之类的连接错误,

/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:13: undefined reference to `_cvLoadImage'
/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:19: undefined reference to `cv::Mat::Mat(_IplImage const*, bool)'
/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:35: undefined reference to `cv::cvtColor(cv::Mat const&, cv::Mat&, int, int)'
/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:93: undefined reference to `cv::cvtColor(cv::Mat const&, cv::Mat&, int, int)'
/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:96: undefined reference to `cv::namedWindow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:100: undefined reference to `_cvShowImage'
/cygdrive/f/Class/CV/Exercise/test_opencv/main.cpp:104: undefined reference to `cv::waitKey(int)'

这个是一个常见的错误,通常就是由于没有包含一些库文件引起的,下面的步骤将解决这个问题

3.4 包含 OpenCV 库文件

类似 3.2 打开“项目属性”,点“链接器”,再点“库 ”旁边的小按钮,然后点“添加库”, 将 OpenCV2.0\lib  目录中的所有文件(6个.dll.a文件 ),挨个添加进去,点“确定”, 如下图

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第5张图片

再回到“项目属性” 面板,添加“其他库目录”和“运行时搜索目录”, 然后,点“确定” 这个要根据你OpenCV的实际安装目录 来,如下图

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第6张图片

再按 F6 尝试编译运行,终于通过了,但是提示无法载入图片 ,下面我们来解决最后的这个问题

3.5 复制 OpenCV2.0\samples\c\lena.jpg  

复制 OpenCV2.0\samples\c\lena.jpg   到 你的工程编译生成的.exe 文件 所在目录下 ,再次运行,你编译生成的 .exe 文件(不要按 F6 运行,而是直接双击 该 .exe 文件 ),成功了!下面可以开始 OpenCV 2.0 之旅了……

WindowsXP + OpenCV 2.0 + Netbeans 6.7 ( MinGW / Cygwin) 安装配置 详细图解_第7张图片

**********************************************************************

百科百科     问答系统: http://www.BaikeBaike.com

终极制造者 开源硬件: http://www.LastMaker.com

**********************************************************************

你可能感兴趣的:(Netbeans)