Visual Studio 2010 +OpenCV2.4.10 环境配置

1、下载及安装

下载2.4.10版,安装包其实就是一个压缩包,安装过程就是解压到某个文件夹。

下载地址:

链接:https://pan.baidu.com/s/1oI4EZq3C6Cf8fLixsKUX_A

提取码:skai

安装到 C:\opencv 目录,安装后文件夹如下:

我们只需要关注“build”文件夹即可,其他的可以不用管。“build”文件夹编译后的文件,我们可以直接使用。打开“build”文件夹,如下

编写过C++程序的都知道,要使用别人的编写好的DLL,那么需要三种文件,即头文件、后缀名为“lib”的链接文件,后缀名为"dll"的动态库文件。如果使用静态编译方式,那么需要头文件和静态库文件。X8632位操作系统的库,X6464位操作系统的库。

1“build\x86\vc10\bin”目录下放的是OpenCV运行时所需的动态运行库,

2“build\x86\vc10\lib”目录放的是编译OpenCV程序时所需的的动态链接库,

3“build\x86\vc10\staticlib”目录方式的静态编译时OpenCV所需要的静态链接库,如果是静态编译,运行时则不需要“build\x86\vc10\bin”目录的DLL文件,但编译后的文件较大。

由于我使用VS2010,所以只关注目录 E:\Soft\opencv\build\x86\vc10 。为了使VS2010可以编译OpenCV程序,我们需要对VS2010做一些设置,主要是让VS2010能找到OpenCV的头文件和链接库。在“OpenCV安装目录\build\docs”目录下有个名为“opencv_tutorials.pdf”PDF文档,里面的1.5“How to build application with OpenCV inside the Micorosoft Visual Studio”说明了如何配置VS2010

2.opencvVS中的配置

opencv在vs中的配置分global和local两种方式,global的方式为VS的系统属性,对所有工程可用,local的方式只对当前工程的配置有效。

local 方式:

在VS中新建一个工程,在项目->属性->C++目录中添加opencv的路径:

可执行文件目录添加 I:\opencv\build\x64\vc10\bin,这里面有很多opencv各个库的动态链接库的dll文件。包含目录中添加

C: \opencv\build\include

C: \opencv\build\include\opencv

C: \opencv\build\include\opencv2

虽然opencv,opencv2在include下,但这三个路径都要添加,否则有一些.h或者.hpp文件会找不到。 而在VS中使用opencv时,需要在程序开头包含这些头文件

#include<opencv2/highgui/highgui.hpp>

#include<opencv2/imgproc/imgproc.hpp>

using namespace cv;

库目录中添加  C:\opencv\build\x64\vc10\lib   这些lib文件使得C++在调用opencv的dll文件时能够找到对应的位置,如果是32位的电脑要把x64改成x86

此外还要在项目->属性->链接器->输入中加入对应lib文件的名字:

opencv_core2410d.lib

opencv_highgui2410d.lib

opencv_imgproc2410d.lib

opencv_ml2410d.lib

比如当我们使用opencv中的ml库,就需要在这里加入lib文件,在C++代码中加入对应的头文件

#include <opencv2/ml/ml.hpp>

这样你的C++代码就能找到opencv中的machine learning 库并调用相关的 函数了

注意VS的工程是分debug和realease模式的,local的方法不同模式下要分别配置,还有就是如果你opencv装的是64位的,在项目属性页中的活动方案解决平台配置管理也要改成64位才能用。 否则编译能过,生成解决方案的时候就会报错。

global 方式:

     如果采用local方式要对每个工程分别配置一遍,如果需要建很多工程的时候推荐使用global方式配置:

     在VS中 视图->属性管理器 找到你要使用的模式 debug或者realease ,以及你使用的是win32还是x64, 在对应的.user文件中进行同local的一遍操作:可执行目录,包含目录,库目录的添加,lib文件的添加,这样以后你的每个工程都会默认包含这些路径.

 

打开的属性管理器窗口如下:

 

2、在打开的属性管理器窗口中,展开“Degug|Win32”节点,双击“Micorsoft.Cpp.Win32.user”会打开全局属性设置窗口,

1)在左边选择“VC++目录

2)在右边包含目录中加上OpenCV的头文件目录,我的头文件目录是放在“C:\opencv\build\include”,这个根据OpenCV的安装目录,一般在build\include目录;

3)在右边库目录中加上OpenCV的链接库目录,我的VS2010库目录是放在“C:\opencv\build\x86\vc10\lib”,这个是根据OpenCV的安装目录和IDE版本决定,根据自己的情况选择。

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现双目立体视觉三维重建的C++代码如下: 首先,需要包含OpenCV库的头文件: #include <opencv2/opencv.hpp> 然后,定义双目相机的参数: cv::Mat cameraMatrix1; // 左相机内参矩阵 cv::Mat distCoeffs1; // 左相机畸变系数 cv::Mat cameraMatrix2; // 右相机内参矩阵 cv::Mat distCoeffs2; // 右相机畸变系数 然后,定义图片路径和文件名: std::string leftImagePath = "left.jpg"; // 左图路径和文件名 std::string rightImagePath = "right.jpg"; // 右图路径和文件名 加载左右图片: cv::Mat leftImage = cv::imread(leftImagePath, cv::IMREAD_GRAYSCALE); cv::Mat rightImage = cv::imread(rightImagePath, cv::IMREAD_GRAYSCALE); 接下来,根据相机参数计算立体校正映射矩阵: cv::Mat R, T, R1, R2, P1, P2, Q; cv::stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, leftImage.size(), R, T, R1, R2, P1, P2, Q); 定义校正后的左右图像: cv::Mat rectifiedLeftImage, rectifiedRightImage; 使用立体校正映射矩阵对左右图像进行校正: cv::remap(leftImage, rectifiedLeftImage, R1, P1, cv::INTER_LINEAR); cv::remap(rightImage, rectifiedRightImage, R2, P2, cv::INTER_LINEAR); 接下来,使用SGBM(Semi-Global Block Matching)算法计算视差图: cv::Mat disparityMap; int minDisparity = 0; int numDisparities = 16; int blockSize = 3; int P1 = 8 * leftImage.channels() * blockSize * blockSize; int P2 = 32 * leftImage.channels() * blockSize * blockSize; cv::StereoSGBM stereoSGBM(minDisparity, numDisparities, blockSize, P1, P2); stereoSGBM(rectifiedLeftImage, rectifiedRightImage, disparityMap); 通过视差图计算深度图: cv::Mat depthMap; double f = cameraMatrix1.at<double>(0, 0); double B = abs(T.at<double>(0, 0)); // 双目相机基线长度 cv::divide(f * B, disparityMap, depthMap); 最后,将深度图进行可视化: cv::normalize(depthMap, depthMap, 0, 255, cv::NORM_MINMAX, CV_8U); cv::imshow("Depth Map", depthMap); cv::waitKey(0); 这段代码实现了双目立体视觉三维重建,通过计算立体校正映射矩阵、视差图和深度图,可以得到场景的三维结构和深度信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法哥2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值