如何构建和使用 openCV with Netbeans 7.2。一步步来。
准备工作:
在 "c:\mingw\bin" 和 "c:\mingw\lib" 中:
1. 搜索并删除所有 libopencv*.dll,libopencv*.dll.a,libopencv*.a。
2. 使用以下程序进行测试。
下载 OpenCV-2.4.2.exe (222.9 MB)
http://sourceforge.net/projects/opencvlibrary/files/
下载 mingw-get-inst-20120426.exe (662.7 kB)
http://sourceforge.net/projects/mingw/files/
下载 cmake-2.8.9-win32-x86.zip
http://www.cmake.org/files/v2.8/cmake-2.8.9-win32-x86.zip
所有本手册中提到的引用都以 "T:\" 开头,请更改为实际驱动器号!(通常是 "c:\")
C:\msys\1.0\src---(如果没有 "msys" ,请创建或使用 "C:\mingw\src")。
C:\mingw\bin
注意:我在 msys-mingw 环境中的新项目中始终使用 "
C:\msys\1.0\src" 目录。为了有相同的条件,gcc 也应该是
"4.7.0" 而不是
"4.6.2"
请将 "C:\mingw\bin;C:\msys\1.0\bin;" 放在 PATH 的最前面。
正如您可能注意到的那样,您无法使用 OpenCV-2.4.2.exe 附带的库。因此,请完全忽略文件夹 "...\opencv\build\x86\mingw\bin" 和 "...\opencv\build\x86\mingw\lib"。
现在,让我们获取新的 mingw 文件。
启动 mingw-get-inst-20120426.exe
使用:下载最新存储库...
确保指定的目录是正确的,通常为 "C:\mingw"。
按照下面所述进行检查。
如果您还需要 msys,则还要选择 "MinGW 开发人员工具包"。
![MinGW安装](https://istack.dev59.com/jD7Os.webp)
现在,MinGW-Get下载所有新文件。(4.7.0)
运行“OpenCV-2.4.2.exe”。
文件所在的文件夹应该是“c:\msys\1.0\src”。
这将把所有文件写入新目录“opencv”中。
新文件夹:C:\msys\1.0\src\opencv。从现在开始,这是我们的顶级目录
打开“cmake-2.8.9-win32-x86.zip”,并将文件复制到您的cmake文件夹中。
创建Makefiles
运行“C:\cmake\bin\cmake-gui.exe”
- A:设置所需字段,单击“配置”
B:设置,单击“下一步”
![输入图像描述](https://istack.dev59.com/iPiKK.webp)
设置并单击“确定”
![输入图像描述](https://istack.dev59.com/VSi9o.webp)
可能出现的错误:PATH中找到sh.exe
![输入图像描述](https://istack.dev59.com/0Apzl.webp)
可能出现的错误:未设置CMAKE_MAKE_PROGRAM
- 标记“CMAKE_MAKE_PROGRAM”,复制,单击“添加条目”
![输入图像描述](https://istack.dev59.com/s2tAV.webp)
![输入图像描述](https://istack.dev59.com/DneH7.webp)
现在应该可以使用了。 Cmake搜索编译器环境
![输入图像描述](https://istack.dev59.com/1DwIB.webp)
Cmake显示选项页面
![输入图像描述](https://istack.dev59.com/2qgeI.webp)
让我们生成Makefiles
![图片描述](https://istack.dev59.com/cJLfm.webp)
构建OpenCV
- 打开“cmd”,进入目录“C:\ msys \ 1.0 \ src \ opencv \ build \ mingw”,然后输入“make”命令。
![图片描述](https://istack.dev59.com/hCCWF.webp)
请耐心等待!
在我的电脑上,大约需要4个小时的时间。
![图片描述](https://istack.dev59.com/U1fqK.webp)
检查所有文件是否在正确的位置
- B: “*.dll” 文件应该在“C:\msys\1.0\src\opencv\build\mingw\bin”目录中
- C: “*.dll.a” 文件应该在“C:\msys\1.0\src\opencv\build\mingw\lib”目录中
![图片描述](https://istack.dev59.com/oG1hi.webp)
构建OpenCV程序
- 在“C:\ msys \ 1.0 \ src \ opencv”目录下创建一个名为“OpenCV-MakeC”的新文件夹
- 在“OpenCV-MakeC”文件夹内创建一个“Makefile”和“imgdisplay.cpp”文件。
为了避免复制和粘贴错误,这里提供两个文件下载:
![图片描述](https://istack.dev59.com/sfEDR.webp)
Makefile
MKDIR_P = C:/msys/1.0/bin/mkdir -p
DESTDIRB = build/Debug
DESTDIRD = dist/Debug
LIBDIRCV = ../build/mingw/lib
CFLAGS = -O2
CXX = C:/mingw/bin/g++.exe
Applic = imgdisplay
ALL: imgdisd
imgdisd:
$(CXX) $(CFLAGS) -c -g $(Applic).cpp -I../build/include -MMD -MP -MF $(DESTDIRB)/$(Applic).o.d -o $(DESTDIRB)/$(Applic).o
$(CXX) $(CFLAGS) -o $(DESTDIRD)/$(Applic) $(DESTDIRB)/$(Applic).o -L../build/mingw/bin $(LIBDIRCV)/libopencv_calib3d242.dll.a $(LIBDIRCV)/libopencv_contrib242.dll.a $(LIBDIRCV)/libopencv_core242.dll.a \
$(LIBDIRCV)/libopencv_features2d242.dll.a $(LIBDIRCV)/libopencv_flann242.dll.a $(LIBDIRCV)/libopencv_gpu242.dll.a $(LIBDIRCV)/libopencv_highgui242.dll.a $(LIBDIRCV)/libopencv_imgproc242.dll.a \
$(LIBDIRCV)/libopencv_legacy242.dll.a $(LIBDIRCV)/libopencv_ml242.dll.a $(LIBDIRCV)/libopencv_nonfree242.dll.a $(LIBDIRCV)/libopencv_objdetect242.dll.a $(LIBDIRCV)/libopencv_photo242.dll.a \
$(LIBDIRCV)/libopencv_stitching242.dll.a $(LIBDIRCV)/libopencv_ts242.a $(LIBDIRCV)/libopencv_video242.dll.a $(LIBDIRCV)/libopencv_videostab242.dll.a
md:
$(MKDIR_P) "$(DESTDIRB)"
$(MKDIR_P) "$(DESTDIRD)"
imgdisplay.cpp
#include <cstdlib>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace std;
int main( int argc, char* argv[] )
{
cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin", 100, 100);
IplImage* img;
img = cvLoadImage("D:/grafik/Lightroom/light01.jpg");
if (!img) {
std::cout << "Could not open the image file" << std::endl;
return -1;
}
cvShowImage("My Picture", img);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
Netbeans 7.2 创建项目
![enter image description here](https://istack.dev59.com/bnbte.webp)
使用以下设置。
![enter image description here](https://istack.dev59.com/kldEV.webp)
创建的项目
![enter image description here](https://istack.dev59.com/Oq0Bn.webp)
创建新目标
注意:如果出现错误:Makefile:12: *** missing separator. Stop.
主要是复制和粘贴错误!(确保每行开头没有空格,但有2个制表符)。
![enter image description here](https://istack.dev59.com/ONirD.webp)
创建新文件夹
- 在“Makefile”上右键单击
- 使用新目标“md”
![enter image description here](https://istack.dev59.com/rHLJj.webp)
项目文件夹现在看起来像...
![enter image description here](https://istack.dev59.com/QEpcW.webp)
构建项目
![enter image description here](https://istack.dev59.com/SXf6K.webp)
调试项目
- 复制所需的dll文件(C:\msys\1.0\src\opencv\build\mingw\bin 到 T:\msys\1.0\src\opencv\OpenCV-MakeC\dist\Debug)
![enter image description here](https://istack.dev59.com/NqeqO.webp)
![enter image description here](https://istack.dev59.com/VB6Ul.webp)
程序停在第17行
![enter image description here](https://istack.dev59.com/PQt33.webp)
未解决的标识符
如果.cpp文件的源代码如下所示
![enter image description here](https://istack.dev59.com/ujI4N.webp)
右键单击您的项目。
勾选 C/C++ Code As...
运行 Reparse Project
![enter image description here](https://istack.dev59.com/7GCQZ.webp)
如果这不够用。
前往 Project Properties
按照说明填写 Include
输入框。
![enter image description here](https://istack.dev59.com/6sUha.webp)
清理
- 如果您将 sh.exe 重命名为 shxx.exe!请将其更名回来!
- 如果您的 PATH 变量中有空格,请在空格周围加上引号(仅针对诸如 Visual Studio 等相关程序)。
我知道它们并不是必要的,但其中一两个程序无法处理 PATH 中的空格!!
- 关于