Windows配置Codeblocks+MingGW+OpenCV并测试边缘提取

来源:互联网 发布:恶劣天气叫外卖的数据 编辑:程序博客网 时间:2024/05/21 08:50

本文主要参考了:

http://blog.csdn.net/celte/article/details/9719643

http://kevinhughes.ca/tutorials/opencv-install-on-windows-with-codeblocks-and-mingw/

 

我看了好几个教程都用codeblocks10.05,这是一个很老的版本了(也说明这两年大家没有遇到什么问题吧……)。这里我用了带MinGW的13.12。并且他们都写的是,直接解压OpenCV,然后就找到路径”./build/x86/mingw”,事实上我的x86目录下只有v10/11/12三个目录,都是为VS中配置准备的,并没有mingw。上面的第二个链接给出了很好的解释:需要我们自己Cmake。Cmake的过程基本可以参考上文,但是注意souce code处不是./opencv,而是./opencv/source,该目录下才有CMakeList.txt。当然这可能与我使用的版本和作者不同有关,我的opencv是2.4.9,大家请自己判断位置。关键就是找到有CMakeList.txt的目录。

目标目录就设为./opencv/build/x86/mingw即可。然后点configure。

稍等片刻,configure结束,进入目录,操作如下图。注意ming32-make.exe的所在位置。作者说直接输入ming32-make,那么应该是先前设置了系统环境变量(Path中添加),我就直接用绝对路径了。接下来就开始make,等待……

【如果你的MinGW是自己后配的,不是随Codeblocks一起安装的,MinGW路径请按自己电脑上的来】


然后按照教程配置即可编译。

编译可通过,但运行报错:


参考:http://www.cnblogs.com/csulennon/p/3775980.html

但是复制一个dll,发现还报错(libopencv_highgui249.dll……)。于是我干脆把bin下的所有dll全拷贝到System32下去了。然后就没有问题了。


 测试代码(边缘提取):

#include"opencv2/imgproc/imgproc.hpp"#include"opencv2/highgui/highgui.hpp"#include <stdlib.h>#include <stdio.h>using namespace cv; int main(){    Mat src, src_gray;   Mat grad;   char* window_name = "求解梯度";   int scale = 1;   int delta = 0;   int ddepth = CV_16S;    int c;    src = imread("logo.png");    if( !src.data ){       return -1;    }    //高斯模糊   GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );    //转成灰度图   cvtColor( src, src_gray, CV_RGB2GRAY );    namedWindow( window_name, CV_WINDOW_AUTOSIZE );    Mat grad_x, grad_y;   Mat abs_grad_x, abs_grad_y;    Sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT);   convertScaleAbs( grad_x, abs_grad_x );    Sobel( src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_DEFAULT);   convertScaleAbs( grad_y, abs_grad_y );    addWeighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad );    imshow( window_name, grad );    waitKey(0);    return 0;}
运行结果:


0 0
原创粉丝点击