准备学习opencv,参考了几个网页终于完成。编辑器和opencv版本都选择最新的版本. 记录过程如下

1. 下载准备:

1)         Opencv源码, 下载地址: https://sourceforge.net/projects/opencvlibrary/files/opencv-win/

当前选择windows下的版本 opencv-3.3.1-vc14.exe

2)         编译器: 使用vs2017, 下载地址: https://www.visualstudio.com/zh-hans/downloads/

3)         cmake-gui: 用于根据系统环境,从cmake配置转换为vs工程配置,

下载地址:http://www.cmake.org/cmake/resources/software.html

版本 cmake-3.10.0.zip

4)         Opencl配置查看工具: GPU Caps Viewer,下载地址: http://www.geeks3d.com/dl/show/548

5)         其它: 之前安装了一个 python2.7

2. 开始编译安装

1)       安装vs2017并从网上搜索序列号进行注册.

2)       安装opencv源代码 opencv-3.3.1-vc14.exe到C盘根目录.

3)       配置cmake-gui, 设置源目录和生成目录, 设置编译器为vs2017, x64版本.  然后执行Configure.

这个过程时间比较长, 中间遇到的问题是下载 文件opencv_ffmpeg331_64.dll和opencv_ffmpeg331.dll很慢.

这个配置过程执行了几次才下载完毕.

4)       执行完成后接着执行Generate, 等待执行完成, 如下图所示:

5)       执行第三个按钮:”Open Project”, 这时候会打开vs2017, 然后编译整个解决方案. 如下图所示:

3. 测试

1)       使用vs创建新的 工程 test1,  输入代码:

 #include "stdafx.h"
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv; int main()
{
Mat img = imread("./pic.jpg");// 读入一张图片
// 创建一个名为 " wind0"窗口
namedWindow("wind0", WINDOW_NORMAL);
imshow("wind0", img); // 在窗口中显示图片
waitKey(); // 等待6000 ms后窗口自动关闭
cv::destroyAllWindows();
return ;
}

2)       配置Debug工程属性:

常规:输出目录: $(SolutionDir)$(Platform)\$(Configuration)\

调试:工作目录: $(SolutionDir)$(Platform)\$(Configuration)\

包含目录: C:\opencv-3.3.1\opencv\build\include

库目录: C:\opencv-3.3.1\opencv\build\lib\Debug

链接器:输入:增加: opencv_world331d.lib;

拷贝opencv编译的dll到Debug目录: C:\opencv-3.3.1\opencv\build\bin\Debug\

opencv_ffmpeg331_64.dll, opencv_world331d.dll

3)       在Debug目录增加图片pic.jpg

4)       编译运行test1工程, 正常情况下应该可以弹出图片显示框.

4. 问题处理

调试时, 每次都会在执行 imshow("wind0", img);时弹出 C++运行异常, 堆栈位置对应opencl的函数clGetPlatformID, 按F5会继续弹出几次 C++异常, 继续F5会弹出配置的图片.

感觉问题不需要修改代码, 就想在查看本机opencl的支持, 下载GPU Caps Viewer执行发现, 电脑上的两个显卡:

GPU 1: Radeon (TM) HD 7450M和GPU 2: Intel(R) HD Graphics 4000都不支持opencl和CUDA, 如下图所示:

在CMakeGUI上面发现WITH_OPENCL为选中状态, 取消选中, 并取消和CUDA及OpenCL相关的配置项, 重新执行配置和   编译, 使用新产生的opencv_world331d.dll链接test1.exe后, 调试和运行都没有出现异常.

5. 参考

1)       【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

http://blog.csdn.net/poem_qianmo/article/details/19809337

2)       从零开始学习OpenCL开发(一)架构 http://blog.csdn.net/leonwei/article/details/8880012

记录opencv编译过程的更多相关文章

  1. OpenSift源代码编译过程记录

    本文记录了在CentOS6.5上编译Sift的开源实现OpenSift的编译过程,同一时候记录了编译过程中的几个问题. sift的理论已经有非常多了,以下会给出链接: 1.Requirements a ...

  2. 记录在Python2.7 x64 bit 下 PyQt5.8的编译过程

    由于工作需要使用python下面的Qt库.PyQt现在只提供针对Python3.X系列的PyQt,所有需要自己手动编译.防止忘记,特意写下随笔记录备忘. 工 作  环境:Python版本:Python ...

  3. win10--vs2015--libjpeg--64位库的编译过程记录

    win10--vs2015--libjpeg--64位库的编译过程记录 1. 下载源代码:   http://libjpeg.sourceforge.net/    或者  http://www.ij ...

  4. CUDA 编程相关;tensorflow GPU 编程;关键知识点记录;CUDA 编译过程;NVCC

    本文章主要是记录,cuda 编程过程中遇到的相关概念,名字解释和问题:主要是是用来备忘: cuda PTX :并行线程执行(Parallel Thread eXecution,PTX)代码是编译后的G ...

  5. Latex — 写作编译过程中遇到问题记录与总结

    最近在训练的时候,又开始用Latex进行写作.碰到了很多问题,将问题进行记录与总结. 一.输出中文的问题 由于写作的时候用的是中文,而之前用的是英文,故碰到的第一个问题就是中文的问题.我之前下的是Wi ...

  6. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  7. Opencv 编译

    转载 https://www.cnblogs.com/xinxue/p/5766756.html OpenCV 3.4 版本,圣诞节前发布了,该版本新增了一种去掉视频背景的算法,dnn 模块的进一步改 ...

  8. gcc编译过程简述

    在linux系统上,从源文件到目标文件的转化是由编译器完成的.以hello.c程序的编译为例,如下: dfcao@linux: gcc -o hello hello.c 在这里,gcc编译器读取源文件 ...

  9. C语言编译过程

    GCC编译C源码有四个步骤: 预处理-----> 编译 ----> 汇编 ----> 链接 一. 编译和链接的流程 C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在 ...

随机推荐

  1. Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,

    测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...

  2. python3字符串

    Python3 字符串 Python字符串运算符 + 字符串连接 a + b 输出结果: HelloPython * 重复输出字符串 a*2 输出结果:HelloHello [] 通过索引获取字符串中 ...

  3. window下安装 node ,并搭建 vue 项目

    uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统) window下安装node 1.在官网上选择对应的位数的msi安装 ...

  4. django+vue

    django安装配置方式略过 1.安装node.js,官网地址:https://nodejs.org/zh-cn/download/ 2.cd到项目目录下,执行npm install -g vue-c ...

  5. docker简单介绍----Dockerfile命令

    DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...

  6. docker简单介绍----docker仓库的应用

    docker hub:主要用来存储docker镜像的仓库 docker默认提供了一个docker仓库,我们也可以自建私有仓库或者使用第三方的docker仓库来pull或者push镜像 这里我们以阿里云 ...

  7. stderr和stdout详细解说

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

  8. GraphQL 01--- GraphQL 介绍及资源总结

    作为一位web开发人员,在使用REST API的时候,是否遇到过这样的问题: 1.调用一个API的时候,总是会返回一些不需要的信息. 2. 对于一个资源的调用,如果想获取到更多的信息,可能需要发送多次 ...

  9. Django与Ajax

    一.Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输 ...

  10. selenium+python编写自动化脚本时,定位frame中对象操作

    在web应用中经常会出现frame嵌套的应用,假设页面上有A,B两个frame,其中B在A内,那么定位B中的内容则需要先到A,再到B.switchTo().frame方法可以把当前定位的主题切换到fr ...