[项目记录]C++下的OpenCV环境搭建

文章用来复习之前做过的CV项目.是本科时候的毕业设计
包括了使用c++下的OpenCV编写图像处理和机器学习的图像识别引擎
和用ASP.NET进行网页平台开发调用上述引擎这两个过程.
从头开始全过程详细记录,包括环境的搭建和系统框架建立等内容,以供日后参考复习.
(选择2017的原因是与ASP.NET使用同一编译器防止版本混乱加懒得装第二个vs,也同样限定了OpenCV的版本)

C++下的OpenCV环境搭建

本文主要包含以下内容:

  • 下载安装VS2017并安装相关组件,配置C++环境
  • 下载安装OpenCV并配置环境变量和项目
  • 使用OpenCV进行简单的图像处理

一.下载安装VS2017并安装相关组件,配置C++环境

安装免费的vs 社区版就行
下载VS2017后需要安装以下组件:在这里插入图片描述
以上组件包含了该项目所用到的语言和框架.
安装组件后开始配置环境变量:
首先完成C++的环境变量配置:
首先找到Visual Studio 2017 的实际文件位置,如下图所示:
在这里插入图片描述

复制该文件位置:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86
(根据你自己文件安装位置进行更改)
然后在Path中添加该位置
Path编辑方法:
我的电脑->属性->环境变量->高级系统设置->打开Path,在系统变量中选中Path新建,并输入之前的文件位置

在这里插入图片描述
新建Lib变量,添加三个路径:
变量名:LIB
变量值:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x86;
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86;
(第一个根据你自己文件安装位置进行更改)
在这里插入图片描述

新建INCLUDE变量,添加两个路径:
变量名:INCLUDE
变量值:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\include;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt;

进入C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build文件夹下,双击运行vcvarsall.bat文件。

最后Win+R->cmd打开命令行,输入CL
显示如下图即为C++配置成功
在这里插入图片描述

二.下载安装OpenCV并配置环境变量和项目

OpenCV下载地址:https://opencv.org/releases/
VS版本要与VC版本进行对应:
Visual Studio 6 : vc6
Visual Studio 2003 : vc7
Visual Studio 2005 : vc8
Visual Studio 2008 : vc9
Visual Studio 2010 : vc10
Visual Studio 2012 : vc11
Visual Studio 2013 : vc12
Visual Studio 2015 : vc14
Visual Studio 2017 : vc15

opencv对VC版本的支持情况:

opencv 2.4.10 == vc10、vc11、vc12
opencv 2.4.13 == vc14
opencv 3.4.x == vc14、vc15
opencv 4.x.x == vc14、vc15

我们选择opencv 3.4.x 版本进行安装
安装后记住安装位置,然后进入环境变量,找到PATH变量,进行编辑,将上一步opencv解压缩后的位置添加进去,文件具体位置如下:
“C:\Users\SteelTao\Desktop\OpenCV\opencv\build\x64\vc15\bin”

完成环境配置后接下来进行c++工程中的opencv配置
打开VS2017 在新建项目选择C++空项目
在这里插入图片描述
右键单击解决方案资源管理器内的解决方案“Image1(自己起的项目名称)”,再点击最下面的属性,进行配置。

在这里插入图片描述
在VC++目录下分别进行可执行文件目录、库目录和包含目录的配置
首先是可执行文件目录:
可执行文件目录:C:\Users\SteelTao\Desktop\OpenCV\opencv\build\x64\vc15\bin

在这里插入图片描述

包含目录:C:\Users\SteelTao\Desktop\OpenCV\opencv\build\include

C:\Users\SteelTao\Desktop\OpenCV\opencv\build\include\opencv

C:\Users\SteelTao\Desktop\OpenCV\opencv\build\include\opencv2

在这里插入图片描述

库目录: C:\Users\SteelTao\Desktop\OpenCV\opencv\build\x64\vc14\lib

C:\Users\SteelTao\Desktop\OpenCV\opencv\build\x64\vc15\lib

然后在“链接器-常规”里面选择“启用增量链接:否”;再往附加库目录中增加一下内容:

附加库目录:C:\Users\SteelTao\Desktop\OpenCV\opencv\build\x64\vc14\lib

%(AdditionalLibraryDependencies)

在这里插入图片描述

接着是“链接器-输入”中第一个选项“附加依赖项”加入以下内容:

附加依赖项:opencv_world3415.lib

opencv_world3415d.lib

注:opencv_worldxxxd.lib这个文件可在“\OpenCV\build\x64\vc15\bin”下查看,可以看到opencv_worldxxxd.dll,就是这个动态链接库,需要根据自己的OpenCV版本将后面的版本号改一下。另外Debug模式的只添加带d的那个.lib文件,相应的Release模式下只添加那个不带d的.lib文件

至此完成工程包含目录配置。

(2024.1.17更新:如果之后需要生成exe可执行文件,以上步骤中的可执行文件目录、库目录和包含目录的配置要分别在debug模式和release模式下配置一遍,附加依赖项同样)
在这里插入图片描述

三.使用OpenCV进行简单的图像处理

完成工程包含目录配置后。进行简单的图像测试,
代码如下,读取位于C:\Users\SteelTao\Desktop\OpenCV文件夹的图片test.jpg

#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
	Mat img;
	// 读取图像
	img = imread("C:\\Users\\SteelTao\\Desktop\\OpenCV\\test.jpg", 1); // 1-RGB、0-gray
	// 创建一个名为 "beautiful"窗口
	namedWindow("beautiful", CV_WINDOW_NORMAL);
	// 在窗口中显示“beautiful”窗口
	imshow("beautiful", img);
	// 等待6000 ms后窗口自动关闭
	waitKey(6000);
	// destroyAllWindows(); 
	// destroyWindow("beautiful");
	return 0;
}

在这里插入图片描述
如图所示, OpenCV配置成功,能够正常读取图片.
对图像进行简单的处理测试,分别将彩色图像转换为灰度图和旋转90度

#include <opencv2/opencv.hpp>
#include <iostream>


using namespace std;
using namespace cv;

int main() {
	
	Mat inputImage = imread("C:\\Users\\SteelTao\\Desktop\\OpenCV\\test.jpg");

	// 检查图像是否成功读取
	if (inputImage.empty()) {
		cout << "Error: Could not read the image." << endl;
		return -1;
	}

	// 显示原始图像
	imshow("Original Image", inputImage);
	waitKey(0);

	// 转换为灰度图像
	Mat grayImage;
	cvtColor(inputImage, grayImage, COLOR_BGR2GRAY);

	// 显示灰度图像
	imshow("Grayscale Image", grayImage);
	waitKey(0);

	// 旋转90度
	Mat rotatedImage;
	transpose(grayImage, rotatedImage);
	flip(rotatedImage, rotatedImage, 1);

	// 显示旋转后的图像
	imshow("Rotated Image", rotatedImage);
	waitKey(0);

	// 保存结果
	//imwrite("path/to/your/output/gray_and_rotated_image.jpg", rotatedImage);

	return 0;
}

在这里插入图片描述
在这里插入图片描述

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值