安装 Vistual Studio

在这里插入图片描述

在这里插入图片描述

安装 OPENCV

OPENCV官网地址
在这里插入图片描述

下载不同版本

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

配置环境变量

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

C:\Users\Administrator\Documents\opencv410\opencv\build\x64\vc16\bin

在这里插入图片描述

Visual Studio 设置 OPENCV

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

复制dllC:\Windows\System32

复制如下3个dllC:\Windows\System32
在这里插入图片描述
在这里插入图片描述

配置属性管理器

视图 -> 其他窗口 -> 属性管理器
在这里插入图片描述
在这里插入图片描述
Debug | 64 文件夹 右键,选择 添加新项目属性表
在这里插入图片描述
在这里插入图片描述
重命名为 OpenCV410x64Debug 的属性表,右键或者双击配置属性
在这里插入图片描述
在这里插入图片描述

VC++目录 下配置 包含目录

在这里插入图片描述
将 OPENCV的如下目录地址,配置到 包含目录

C:\Users\Administrator\Documents\opencv410\opencv\build\include
C:\Users\Administrator\Documents\opencv410\opencv\build\include\opencv2

在这里插入图片描述

VC++目录 下配置 库目录

在这里插入图片描述
将 OPENCV的如下目录地址,配置到 库目录

C:\Users\Administrator\Documents\opencv410\opencv\build\x64\vc16\lib

在这里插入图片描述

链接器输入 中配置 附加依赖项

在这里插入图片描述
引用 OPENCV如下目录 的 opencv_world4100d.lib

C:\Users\Administrator\Documents\opencv410\opencv\build\x64\vc16\lib\opencv_world4100d.lib

在这里插入图片描述

在这里插入图片描述

测试

在这里插入图片描述

显示图片

在这里插入图片描述

#include <opencv2/opencv.hpp>  //头文件
using namespace cv;  //包含cv命名空间

void main()
{
	// 【1】读入一张图片,载入图像
	Mat srcImage = imread("1.jpg");
	// 【2】显示载入的图片
	imshow("【原始图】", srcImage);
	// 【3】等待任意按键按下
	waitKey(0);
}

在这里插入图片描述

图像腐蚀


//-----------------------------------【头文件包含部分】---------------------------------------
//		描述:包含程序所依赖的头文件
//---------------------------------------------------------------------------------------------- 
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

//-----------------------------------【命名空间声明部分】---------------------------------------
//		描述:包含程序所使用的命名空间
//-----------------------------------------------------------------------------------------------  
using namespace cv;

//-----------------------------------【main( )函数】--------------------------------------------
//		描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main()
{
	//载入原图  
	Mat srcImage = imread("2.jpg");
	//显示原图
	imshow("【原图】腐蚀操作", srcImage);
	//进行腐蚀操作 
	Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
	Mat dstImage;
	erode(srcImage, dstImage, element);
	//显示效果图 
	imshow("【效果图】腐蚀操作", dstImage);
	waitKey(0);

	return 0;
}

在这里插入图片描述

图像模糊

//---------------------------------【头文件、命名空间包含部分】---------------------------
//		描述:包含程序所使用的头文件和命名空间
//-----------------------------------------------------------------------------------------------
#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/imgproc/imgproc.hpp" 
using namespace cv;

//-----------------------------------【main( )函数】--------------------------------------------
//		描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main()
{
	//【1】载入原始图
	Mat srcImage = imread("3.jpg");

	//【2】显示原始图
	imshow("均值滤波【原图】", srcImage);

	//【3】进行均值滤波操作
	Mat dstImage;
	blur(srcImage, dstImage, Size(7, 7));

	//【4】显示效果图
	imshow("均值滤波【效果图】", dstImage);

	waitKey(0);
}

在这里插入图片描述

canny 边缘检测

//---------------------------------【头文件、命名空间包含部分】----------------------------
//		描述:包含程序所使用的头文件和命名空间
//-------------------------------------------------------------------------------------------------
#include <opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;

//-----------------------------------【main( )函数】--------------------------------------------
//		描述:控制台应用程序的入口函数,我们的程序从这里开始
//-------------------------------------------------------------------------------------------------
int main()
{
	//【0】载入原始图  
	Mat srcImage = imread("4.jpg");  //工程目录下应该有一张名为1.jpg的素材图
	imshow("【原始图】Canny边缘检测", srcImage); 	//显示原始图 
	Mat dstImage, edge, grayImage;	//参数定义

	//【1】创建与src同类型和大小的矩阵(dst)
	dstImage.create(srcImage.size(), srcImage.type());

	//【2】将原图像转换为灰度图像
	//此句代码的OpenCV2版为:
	//cvtColor( srcImage, grayImage, CV_BGR2GRAY );
	//此句代码的OpenCV3版为:
	cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);

	//【3】先用使用 3x3内核来降噪
	blur(grayImage, edge, Size(3, 3));

	//【4】运行Canny算子
	Canny(edge, edge, 3, 9, 3);

	//【5】显示效果图 
	imshow("【效果图】Canny边缘检测", edge);

	waitKey(0);

	return 0;
}

在这里插入图片描述

读取播放视频

//---------------------------------【头文件、命名空间包含部分】----------------------------
//		描述:包含程序所使用的头文件和命名空间
//-------------------------------------------------------------------------------------------------
#include <opencv2\opencv.hpp>  
using namespace cv;

//-----------------------------------【main( )函数】--------------------------------------------
//		描述:控制台应用程序的入口函数,我们的程序从这里开始
//-------------------------------------------------------------------------------------------------
int main()
{
	//【1】读入视频
	VideoCapture capture("1.avi");

	//【2】循环显示每一帧
	while (1)
	{
		Mat frame;//定义一个Mat变量,用于存储每一帧的图像
		capture >> frame;  //读取当前帧
		imshow("读取视频", frame);  //显示当前帧
		waitKey(30);  //延时30ms
	}
	return 0;
}

在这里插入图片描述

调用摄像头采集图像

//---------------------------------【头文件、命名空间包含部分】----------------------------
//		描述:包含程序所使用的头文件和命名空间
//-------------------------------------------------------------------------------------------------
#include <opencv2\opencv.hpp>  
using namespace cv;

//-----------------------------------【main( )函数】--------------------------------------------
//		描述:控制台应用程序的入口函数,我们的程序从这里开始
//-------------------------------------------------------------------------------------------------
int main()
{
	//【1】从摄像头读入视频
	VideoCapture capture(0);

	//【2】循环显示每一帧
	while (1)
	{
		Mat frame;  //定义一个Mat变量,用于存储每一帧的图像
		capture >> frame;  //读取当前帧
		imshow("读取视频", frame);  //显示当前帧
		waitKey(30);  //延时30ms
	}
	return 0;
}

台式机电脑,未调通该代码

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐