本来是想接着第二章学习的,但是感觉理论性有点强,了解基本概念后还是从Opencv来,遇到问题再切换。
关于opencv的下载与配置参考:
http://opencv.org/downloads.html
http://wiki.opencv.org.cn/index.php/Codeblocks_MinGW_openCV codeblocks下
配置的过程真是困难重重,许多教程就是睁着眼睛说瞎话,我配置的主要流程如下:
1.下载解压opencv;
2.下载安装cmake;
由于最新版本的opencv只有vs10,vs11,vs12,所以需要用cmake自己制作mingw版本的opencv库。
详细原因见:http://blog.csdn.net/goomaple/article/details/45649305
3.使用cmake调用mingw去编译下载下来的OpenCV源码,详细步骤参见上一步的博客链接。
这里遇到的主要问题是在configure的时候无法通过,要注意mingw版本和opencv版本的一致,我刚开始就是因为mingw版本太老搞了好久。还有就是路径不要包含中文。最后如果在mingw32-make的时候发现'BTNS_AUTOSIZE' was not declared in this scope这种错误,需要在mingw的bin文件夹下修改commctrl.h文件。
我发现网上的许多教程在这一步都有意无意的带过许多重要细节,并不敢确信“写”这些教程的人真的是原创的文章。
4.做到这里成功用mingw编译了opencv库,后面就是按照网上的传统教程进行下去,主要是环境变量的设置和库的添加,并没有遇到太大的困难。
配置完opencv,测试第一个程序:参考了http://blog.csdn.net/poem_qianmo/article/details/19809337这篇文章里的测试程序。
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片(游戏原画),可自己设置路径
Mat img=imread("C:\\Users\\Administrator\\Desktop\\psb.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画",img);
// 等待60000 ms后窗口自动关闭
waitKey(60000);
}
最后效果如图
说实话,用mingw学习opencv的人本来就少,配置的过程中也看了很多博客、论坛什么的,之所以看了这么多,就是因为很多作者并不负责,不知从哪里拉了一段过来就说自己原创,导致我们这些初学者实践起来并不是这么回事,走了很多弯路。
希望大家都能从这篇文章中受益。
转载注明出处: http://blog.csdn.net/accepthjp/