opencv codeblocks配置

来源:互联网 发布:淘宝网络授权书 编辑:程序博客网 时间:2024/04/29 01:20

opencv官网上的window下载包里不含适合codeblocks的二进制文件,只有VS的,所以只有自己动手了。

VS与codeblocks的最大区别就在于用的默认编译器不一样,opencv官网上给的是用VC编的,codeblocks直接用会报缺少dll文件,一查都是VC的。所以要用mingw自己编译一遍。

所以问题是用mingw编译opencv源码得到二进制文件。

cmake配置

这一过程要用到cmake。其界面如下:
cmake
点击configure,选择codeblocks-mingw makefiles,第一次会显示四种选项,选第一种
这里写图片描述
codeblocks必须安装,而且必须安装了编译器。绿色版的cmake会找不到编译器,因为它是通过注册表查找的。之前用绿色版的报如下错误:
Cmake was unable to find a build program corresponding to “MinGW Makefiles”, CMAKE_MAKE_PROGRAM” is not set, You probably need to select a different build tool.
Configure通过后会显示:
这里写图片描述
下面就要选择配置cmake选项了。根据网络经验,mingw是不支持cuda的,所以和cuda相关的选项都要去掉,另外opencv3.0不支持ipp,所以也要去掉。所以
这里写图片描述
再次点击Configure,
这里写图片描述
变白了表示通过,再点generate,
这里写图片描述

codeblocks(mingw)编译

下面轮到codeblocks上场了,打开cmake gui最开始设置的where to build the binaries,在gui的最上面,打开这个地址,找到OpenCV.cbp,就是这个
这里写图片描述
这是个codeblocks的工程文件,就是把所有文件链接到一起的那东西,双击在codeblocks里打开他,
这里写图片描述
然后,戳一下这里这里写图片描述就好了。
接着就是漫长的等待了,酷睿双核大概需要一个多小时。

编译完后,看看这里和这里
这里写图片描述
如果这两个夹子下面有货而且很多,那么恭喜你成功了,
这里写图片描述这里写图片描述

工程配置

下面就是应用了,还是codeblocks,新建一个工程,工程名右键->build options
1)所要引用的库有哪些(linker settings)
加入所有lib文件夹下的库
这里写图片描述
2)头文件搜索路径(search directories->complier)
这里写图片描述
3)二进制文件(不仅仅是库文件还有exe )的搜索路径(search directories->linker)
这里写图片描述

好,所有配置工作完成了,可以正式开始编码了。
从网上找了一个例子,链接
需要注意的是,cvLoadImage ("E:/CodeLink/Init/bin/Debug/test.png", 1) 里面的路径需要用/而不是windows里的\。

#include <cv.h>#include <highgui.h>using namespace std;int main(){    IplImage* src = cvLoadImage ("E:/CodeLink/Init/bin/Debug/test.png", 1);    IplImage* dst = cvCreateImage (cvGetSize(src), IPL_DEPTH_32F, 1);    IplImage* canny = cvCreateImage (cvGetSize(src), IPL_DEPTH_8U, 1);    cvCvtColor (src, canny, CV_RGB2GRAY);    cvCanny (canny, canny, 100, 200, 3);    cvDistTransform (canny, dst, 3, 3);    cvNamedWindow ("src", 1);    cvShowImage ("src", src);    cvNamedWindow ("dist", 1);    cvShowImage ("dist", canny);    cvWaitKey (0);    cvReleaseImage (&src);    cvReleaseImage (&canny);    cvReleaseImage (&dst);    return 0;}

编译之前先看看头文件是否能打开,各个函数是否都可以找到定义,如果都可以,那么配置无错,可以编译了。
看看结果,左侧是原图,后侧是处理后的:
这里写图片描述

0 0