工作电脑之前用的是vs2013,这是在自己电脑上由于使用比较少,vs下载安装包太大,平时用eclipse与idea用得也比较习惯,所以就有了这篇文章
平台:
windows 7 x64
opencv 3.3.0
cmake x64
mingw x64
opencv集成eclipse 安装CDT插件支持c++(vscode集成会写在下一篇)
分为四个步骤: 下载文件与安装cmake, 再通过cmake生成项目,mingw-make命令编译opencv源文件,mingw-install安装编译后的项目
1. 准备工作
下载openCV,打开官网https://opencv.org/releases.html
这里下载完成后是exe文件,而不是下载源码
下载完成后的文件:
打开exe文件解压到指定目录:
安装CMake
安装完成后打开初始界面
安装mingw ,这里注意如果系统64位的话,建议安装64位的,在编译过程报错,我最开始下载是32位的,编译的时候直接报错了
error: 'thread'in namespace 'std' does not name a type
报是这个报错,google了半天说是重新安装就好了
安装完成cmd看下是否安装成功
2. 开始编译
在x64目录下新建一个mingw路径,存入编译完成的文件,我放的是D盘下D:\opencv\build\x64\mingw
下一步重要,我在编译到47%就报了这个错,然后又要重头开始,浪费了好多时间
完成算下来应该是用了一个半小时,包括出错重头开始….
报错---
sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA错误
...opencv/sources/modules/videoio/src/cap_dshow.cpp...
...'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared inthis scope ...
解决方式:
在cap_dshow.cpp(目录在上面) 添加一行:#define NO_DSHOW_STRSAFE
如:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#defineNO_DSHOW_STRSAFE
#include "DShow.h"
下一步配置cmake的source 和build就是刚开始解压的路径,这里是D:/opencv/sources,D:/opencv/build/x64/mingw(就是刚才新建的目录)
点击configrure 再点击generate,
如果以编译过程中报错如下:
报错----
... windres.exe:unknown option – W
在生成之前的把headers这里勾去掉就可以了编译过去了
生成之后打开D:/opencv/build/x64/mingw,打开cmd命令行窗口输入:mingw32-make等待到100%即可,如有出错按上面提示修正.再接着编译…
最后看到这个,表示已经编译完成可以使用了
3.编译完成之后,再通过 mingw-make install 安装编译后的工程。。。。
4. 最后打开eclipse,新建一个c++项目(前提是已经安装eclipse的CDT插件)
在项目属性,c++build=>setting 下面
最后是显示结果
int main(int arg,char** args) {
Mat src,dst;
string img ="c:\\users\\administrator\\downloads\\t1img.jpg";
src = imread(img);//图片地址
if(!src.data){//data是判断图片是存在
printf("%s\n", "图片不存在");
return -1;
}
//显示图片
namedWindow("inputimage",CV_WINDOW_AUTOSIZE);
imshow("inputimage",src);
waitKey(0);
cout << "HelloWorld" << endl; //prints Hello World
return 0;
}