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

本文主要参考了:

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值