VC 2010下安装OpenCV2.4.4

说明:

  1. 安装平台:32位XP,VS2010;
  2. OpenCV 2.4.4不支持VC 6.0;
  3. 网上有很多用CMake编译OpenCV的安装教程,这里建议先不要自己编译,如果使用预编译好的库有问题,再尝试自己编译。
  4. 希望大家好好看看每一部分的注意事项,看懂了再去配置,不然错了,还不知道错在哪里。尤其要注意自己的操作系统的位数,还有相应的路径。

目录

 [隐藏]
  • 1 一、下载OpenCV
  • 2 二、设置环境变量
    • 2.1 用户变量设置
      • 2.1.1 设置PATH
      • 2.1.2 新建OpenCV变量
    • 2.2 系统变量设置
      • 2.2.1 设置PATH
  • 3 三、配置VS2010
    • 3.1 准备工作
    • 3.2 配置VC10
  • 4 四、测试程序
    • 4.1 4.1、程序代码
    • 4.2 4.2、运行结果
      • 4.2.1 4.2.1、Debug下的运行结果
      • 4.2.2 4.2.2、Release下的运行结果
  • 5 作者

 

[编辑]

一、下载OpenCV

  1. 从本站下载栏目 http://www.opencv.org.cn/index.php/Download 下载 OpenCV for Windows(也即 OpenCV-2.4.4.exe 文件)。
  2. 将 OpenCV-2.4.4.exe 解压并放到某个目录下,例如 C:\Program Files\OpenCV244 (本人的解压目录)。解压后的目录结构如下图。

Image:001.jpg

[编辑]

二、设置环境变量

右键单击我的电脑→属性→高级→环境变量。

Image:002.jpg

[编辑]

用户变量设置

[编辑]

设置PATH

选中PATH,单击编辑。在PATH的末尾添加以下路径:C:\Program Files\OpenCV244\opencv\build\x86\vc10\bin
     注意:1、要在该路径前添加英文分号;,以与前面的路径隔开,但该路径末尾不可加英文分号;,除非还要在其后添加路径;2、可根据自己的情况,将其改为你的opencv\build\x86\vc10\bin文件夹所在的路径;3、如果是64位系统,可将opencv\build\x86\vc10\bin改为opencv\build\x64\vc10\bin
Image:003.jpg
[编辑]

新建OpenCV变量

单击新建,在弹出的对话框中,将变量名和变量值分别设置为OpenCV和C:\Program Files\OpenCV244\opencv\build
     注意:1、变量名可以自己定义;2、变量值可修改为你的opencv\build文件夹所在的路径。
Image:004.jpg
Image:005.jpg
[编辑]

系统变量设置

[编辑]

设置PATH

选中PATH,单击编辑。在PATH的末尾添加以下路径:C:\Program Files\OpenCV244\opencv\build\x86\vc10\bin
     注意:1、要在该路径前添加英文分号;,以与前面的路径隔开,但该路径末尾不可加英文分号;,除非还要在其后添加路径;2、可根据自己的情况,将其改为你的opencv\build\x86\vc10\bin文件夹所在的路径;3、如果是64位系统,可将opencv\build\x86\vc10\bin改为opencv\build\x64\vc10\bin。
Image:006.jpg
说明:设置完环境变量,需要重启电脑,才能生效。
[编辑]

三、配置VS2010

配置VS2010,亦即告诉VC去什么地方寻找OpenCV的头文件和库。打开VS2010,选择菜单“工具”→“选项”→“项目和解决方案”→“VC++目录”,在VS2010中打开此选项,如下图所示,显示编辑功能被否决。

Image:007.jpg

可以在具体的项目中,对特定的项目单击右键→属性来设置,只是这样的设置无法被继承,每一个项目都需要单独设置,太过繁琐,因此需要一个能够被继承的全局设置,方法如下:
要求:确保VS2010中至少有一个工程被打开。这里采用新建一个工程的办法,以便后面测试程序。
[编辑]

准备工作

1、打开VS2010,新建项目→win32控制台项目→完成。
Image:008.jpg
Image:009.jpg
Image:010.jpg
2、点击“视图”→“其他窗口”→“属性管理器”,结果如下图所示。
Image:011.jpg
[编辑]

配置VC10

1、从左侧项目中打开“Debug| Win32”→“Microsoft.Cpp.Win32.user”,如下图所示。
Image:012.jpg
2、双击“Microsoft.Cpp.Win32.user”,弹出如下图所示的窗口。
Image:013.jpg
3、点击左侧VC++目录,编辑右侧的可执行文件目录、包含目录与库目录,分别添加对应的路径。
Image:014.jpg
对应的路径如下:
1)可执行文件目录
C:\Program Files\OpenCV244\opencv\build\x86\vc10\bin
    说明:1、可根据自己的情况,将其改为你的opencv\build\x86\vc10\bin文件夹所在的路径;2、如果是64位系统,可将opencv\build\x86\vc10\bin改为opencv\build\x64\vc10\bin。
2)包含目录
C:\Program Files\OpenCV244\opencv\build\include
C:\Program Files\OpenCV244\opencv\build\include\opencv
C:\Program Files\OpenCV244\opencv\build\include\opencv2
    说明:1、可根据自己的情况,将其分别改为你的opencv\build\include、opencv\build\include\opencv和opencv\build\include\opencv2文件夹所在的路径;2、这里的include目录为build文件夹下的include目录,不要选成与build文件夹在同一个根目录下的那个include文件夹。
3)库目录
C:\Program Files\OpenCV244\opencv\build\x86\vc10\lib
    说明:1、可根据自己的情况,将其改为你的opencv\build\x86\vc10\lib文件夹所在的路径;2、如果是64位系统,可将opencv\build\x86\vc10\lib改为opencv\build\x64\vc10\lib。
4、附加依赖项
单击“链接器”→“输入”→“附加依赖项”,如下图所示。
Image:015.jpg
如下图所示,在附加依赖项里,添加opencv\build\x86\vc10\lib文件夹里的lib文件名称:
Image:016.jpg
opencv_calib3d244d.lib
opencv_contrib244d.lib
opencv_core244d.lib
opencv_features2d244d.lib
opencv_flann244d.lib
opencv_gpu244d.lib
opencv_highgui244d.lib
opencv_imgproc244d.lib
opencv_legacy244d.lib
opencv_ml244d.lib
opencv_nonfree244d.lib
opencv_objdetect244d.lib
opencv_photo244d.lib
opencv_stitching244d.lib
opencv_ts244d.lib
opencv_video244d.lib
opencv_videostab244d.lib


opencv_calib3d244.lib
opencv_contrib244.lib
opencv_core244.lib
opencv_features2d244.lib
opencv_flann244.lib
opencv_gpu244.lib
opencv_highgui244.lib
opencv_imgproc244.lib
opencv_legacy244.lib
opencv_ml244.lib
opencv_nonfree244.lib
opencv_objdetect244.lib
opencv_photo244.lib
opencv_stitching244.lib
opencv_ts244.lib
opencv_video244.lib
opencv_videostab244.lib
 说明:上面的库为opencv\build\x86\vc10\lib里面的库文件,文件名后面有小写字母“d”的为Debug库(调试模式库),没有“d”的为Release库(发布模式库)。末尾的244
是版本号,和你lib里面的文件一致的。比如,OpenCV2.4.3的lib文件的末尾数字为243。如果版本不一样,要改正,使其一致。
[编辑]

四、测试程序

[编辑]

4.1、程序代码

#include   
#include
using namespace cv;
void main()
{IplImage *src;src = cvLoadImage("lena.jpg"); //这里将lena.jpg和lena.cpp文件放在同一个文件夹下cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);cvShowImage("lena",src);cvWaitKey(0);cvDestroyWindow("lena");cvReleaseImage(&src);
}
[编辑]

4.2、运行结果

[编辑]

4.2.1、Debug下的运行结果

Image:022.jpg
[编辑]

4.2.2、Release下的运行结果

Image:023.jpg
[编辑]

作者

可能会出现问题:

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

解决方法:

项目-->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]   ----------->只要设这个就可以了

本文转自:(“http://wiki.opencv.org.cn/index.php/VC_2010下安装OpenCV2.4.4”)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3源码中的最长递增子序列

求解最长递增子序列是一道经典的算法题, 多数解法是使用动态规划的思想,算法的时间复杂度是O(); 而Vue.js内部使用的是维基百科提供的一套“贪心二分查找”的算法; 贪心算法的时间复杂度是O(n),二分查找的时间复杂度是O(logn),总时间复杂度…

Java编程基础阶段笔记 day04 Java基础语法(下)

​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个数形参 面向对象:封装性 访问权限修饰符 构造方法&…

汉诺塔递归算法

起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子…

Java编程基础阶段笔记 day 07 面向对象编程(上)

​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个数形参 面向对象:封装性 访问权限修饰符 构造方法&…

Vue/Angular中父窗口新开的子窗口关闭的时候刷新父窗口

最近遇到一个项目需求:Angular中父窗口新开的子窗口提交完信息关闭的时候刷新父窗口。 知识点: window.opener 概述 返回打开当前窗口的那个窗口的引用,例如:在window A中打开了window B,B.opener 返回 A. 语法 …

HDU 6631 line symmetric(枚举)

首先能想到的是至少有一对相邻点或者中间间隔一个点的点对满足轴对称,那么接下来只需要枚举剩下的点对是否满足至多移动一个点可以满足要求。 第一种情况,对于所有点对都满足要求,那么Yes。 第二种情况,有一个点不满足要求&#x…

学习数字图像处理经验谈

一、面向应用:层层分解、抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用数字图像处理的理论、方法和技术来解决实际问题。在此过程中,提高效率是非常重要的&#xff0c…

react-router-dom@6获取路由传参

目录 参数获取 1、子路由形式携带 2、问号(?)形式参数 3、事件跳转传参 router/index.tsx import App from "App"; import Home from "pages/Home"; import List from "pages/List"; import Detail from "pages/Detail"; import…

koa洋葱模型

Koa 和 Express 都会使用到中间件 Express的中间件是顺序执行,从第一个中间件执行到最后一个中间件,发出响应如上图 Koa是从第一个中间件开始执行,遇到 next 进入下一个中间件,一直执行到最后一个中间件,在逆序&#x…

koa后端允许跨域

举个例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevice-width…

python面向对象之继承

面向对象之继承 什么是面向对象的继承&#xff1f; 继承&#xff08;英语&#xff1a;inheritance&#xff09;是面向对象软件技术当中的一个概念。如果一个类别A“继承自”另一个类别B&#xff0c;就把这个A称 为“B的子类别”&#xff0c;而把B称为“A的父类别”也可以称“B是…

美国正面临“人才泡沫”破裂危机?

&#xff08;Jason Lane和Kevin Kinser/文&#xff09;最近&#xff0c;与教育有关的种种问题在美国社会引起了广泛讨论。首先巨额的学生贷款问题&#xff1a;根据美联储纽约分行在2012年11月发布的一份报告&#xff0c;全美学生贷款总额已经达到420亿美元&#xff0c;其中新增…

ngrx学习笔记

什么是ngrx ngrx是Angular基于Rxjs的状态管理&#xff0c;保存了Redux的核心概念&#xff0c;并使用RxJs扩展的Redux实现。使用Observable来简化监听事件和订阅等操作。 在看这篇文章之前&#xff0c;已经假设你已了解rxjs和redux。 有条件的话请查看官方文档进行学习理解。 所…

.slice(0)

高手代码里看到.slice(0)&#xff0c;查了下这样写的好处&#xff1a; 1.对原数组进行深拷贝&#xff0c;这样进行一系列操作的时候就不影响原数组了&#xff1b; 2.将类数组对象转化为真正的数组对象&#xff1a;var anchorArray [].slice.call(document.getElementsByTagN…

亲历2013年TED大会:全球最潮灵感大会

本文转自&#xff1a;http://mooc.guokr.com/opinion/436837/ 本文由《外滩画报》供稿 文/华琪&#xff08;发自美国&#xff09; 编辑/吴慧雯 什么是TED的世界&#xff1f;在这里&#xff0c;你可以轻易发现各种名人出没的痕迹&#xff0c;和各个领域里最具远见卓识和创造…

Java生鲜电商平台-电商会员体系系统的架构设计与源码解析

Java生鲜电商平台-电商会员体系系统的架构设计与源码解析 说明&#xff1a;Java生鲜电商平台中会员体系作为电商平台的基础设施&#xff0c;重要性不容忽视。我去年整理过生鲜电商中的会员系统&#xff0c;但是比较粗&#xff0c;现在做一个最好的整理架构. 设计电商会员体系需…

为什么要上大学?

为了让自己成为更有意思的人。 &#xff08;文&#xff0f;美国圣母大学哲学教授 Gary Gutting&#xff09;再不久&#xff0c;千千万万的大学生又将走完一个学期。他们中的很多人以及他们的家人&#xff0c;可能为刚刚过去的几个月或是几年投入了相当可观的时间、努力以及金钱…

打造“神犇”是教育的未来吗?

这年头&#xff0c;品学兼优、身怀特长的“神犇”&#xff0c;拼的不仅是天赋异禀和后天努力&#xff0c;更是身后爹妈的钱包&#xff0c;而本该实现社会公平的教育&#xff0c;反而加速和凝固了社会的不公。 高等教育的终极目标真的是造就学业超人吗&#xff1f;《纽约时报》刊…

AntD 官网样例 InputRef报错原因

在官网可编辑表格typescript样例里 const inputRef useRef<InputRef>(null); InputRef项目报错原因是ant design的版本问题! antd 4.19版本重写了input 可通过InputRef来使用input组件的ref

AntD 可编辑行表格

本地数据代码模板自用,官网例子改改 // 编辑行的自定义表格 import React, { useState } from "react"; import {Table,Input,InputNumber,Popconfirm,Form,Typography,Divider, } from "antd";interface Item {key: string;name: string;age: number;add…