win7 c/c++ opencv 开发环境搭建

1. eclipse 下载安装。参考:http://sjuhui.iteye.com/blog/418267

2. Mingw 下载安装。参考:http://sjuhui.iteye.com/blog/418267 (这里提到的MinGW编译opencv不过)

使用这个可以编译成功(包含编译好的opencv2.4.10 MinGW库):http://download.csdn.net/detail/fenghun5987/9588737

3. opencv下载安装

4. Cmake 下载(绿色版).http://download.csdn.net/detail/fenghun5987/9588786

5. 将opencv编译为MinGW版本库 参考:http://blog.csdn.net/yanzi1225627/article/details/26408579

步骤补充:(编译过程可能出错)

路径选择好之后,进行如下操作:

http://blog.csdn.net/lrs0304/article/details/40438603

6. 测试代码

#include <opencv2/opencv.hpp>

int main() {
    printf("------------- main() is called! -----------------");
    Mat img = imread("D:\\devSoftware\\opencv\\sources\\samples\\cpp\\lena.jpg");
    imshow("lena",img);
    waitKey(0);
    return 0;
}

7. 通过opencv调整camera 效果参数

参考:http://ccw1986.blogspot.jp/2014/06/opencv-how-to-set-or-get-property-from.html

8. 获取camera个数及camera名称、id信息(eclipse + minGW 环境中尚未调通)

参考:

Opencv 结合directshow 实现操作camera,可以获取更加丰富的信息,如摄像头的名称,id等等。

资源下载链接如下:http://download.csdn.net/download/mjlsuccess/4535972

示例参考链接如下(包含下载内容,但是下载失败):http://wiki.opencv.org.cn/index.php?title=%E4%BD%BF%E7%94%A8DirectShow%E9%87%87%E9%9B%86%E5%9B%BE%E5%83%8F&variant=zh-tw

9. 通过修改opencv源码的方式获取camera列表

参考链接:http://blog.csdn.net/chengkun183/article/details/46915585

按照上述文章修改源码,编译通过,

9.1. 配置opencv环境变量,添加内容如下:

${opencv}\opencv2.4.10\opencv\build\x86\mingw\bin;
${opencv}\opencv2.4.10\opencv\build\x86\mingw\lib;

9.2. 替换掉头文件${opencv}\opencv2.4.10\opencv\build\include\opencv2\highgui\highgui.hpp

9.3. 配置eclipse的 GCC C++ Compiler


9.4. 配置MinGW的library和library path


9.5. 测试程序

#include <stdio.h>
#include <iostream>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main()
{
    printf("------------------ main ------------------ \n");
    VideoCapture cap;
    string hellocv = cap.helloOpencvFei();
    cout << hellocv <<endl;
    int deviceCount = cap.getDeviceCount();
    cout<< "camera count is " << deviceCount <<endl;
    for (int i=0;i<deviceCount;i++){
       string deviceName = cap.getDeviceName(i);
       cout<<deviceName<<endl;
    }
}

提示 cap.getDeviceCount()cap.getDeviceName(i)方法

Method 'getDeviceCount' could not be resolved

Method 'getDeviceName' could not be resolved

解决:步骤3中导入的include文件中的highgui.hpp文件要及时更新为最新的头文件。(eclipse 中更新引入的头文件应先删除,再重新添加)

如果函数调用不起来,上述配置完成后,重启机器测试。

一次编译通过后,修改某个文件后再编译,编译速度会快很多,只编译修改的文件。

输出结果:


修改后的opencv2.4.10 mingw库链接如下(配合上文提到的MinGW安装文件使用,版本需一致):

http://download.csdn.net/detail/fenghun5987/9626105

10. 搭建eclipse + opengl es 开发环境,参考链接:http://blog.csdn.net/sdlgxxy/article/details/6225267










展开阅读全文

没有更多推荐了,返回首页