初识opencv

@[TOC] opencv初识

关于我的第一次

自从上了大学在博客上也晃荡很久了,今天终于鼓起勇气写一篇关于最近入门opencv的博客文章,如有错误地方请大家指出,我会进行改正。也让我们相互学习共同进步。

学习背景

出于很多意外,莫名其妙的加入了学校第一年组织的RoboMaster战队的比赛中。视觉方面非常稀缺,一切都只能靠自己的摸索与研究,希望通过这篇博客与更多学习opencv视觉识别的同道中人结识,相互学习。

在VS2017中opencv项目的建立

打开Visual Studio 2017
在这里插入图片描述
点击右下角空项目
在这里插入图片描述
进行项目名称更改以及存储位置确定
在这里插入图片描述
在IDE界面的右面选择源代码
在这里插入图片描述
按鼠标右键选择添加选择新建项
在这里插入图片描述
选择C++文件,可在下面自定义名称,然后点击添加
在这里插入图片描述
进入编辑界面
在这里插入图片描述

图像显示


```cpp
//调用opencv库
#include"opencv2/highgui/highgui.hpp"
//包含cv命名空间
using namespace cv;


int main()
{
    //载入原图
	Mat srcImage = imread("1.jpg");
	//显示原图
	imshow("【原图】", srcImage);```
    //等待任意按键按下
    waitKey(0);
    }

效果图

在这里插入图片描述

注意事项

要被载入的图片需要放置在与.cpp同一等级的文件夹中。

结尾

希望我的博客会对大家有一些帮助,大家可以一同交流,共同进步。在机器视觉的道路上愈行愈远,找到自己的人生价值。

### OpenCV 中轮廓近似与模板匹配入门 #### 轮廓近似的概念和实现 在计算机视觉领域,轮廓近似是一种简化多边形曲线的方法。通过减少不必要的点来表示物体边界,从而降低计算复杂度并提高处理速度。 对于给定的一组轮廓点,`approxPolyDP()` 函数用于查找具有最少可能顶点数量的多边形,这些顶点能够紧密拟合原始形状。该过程依赖于 Douglas-Peucker 算法,它允许指定最大距离误差 `epsilon` 来控制近似程度: ```python import cv2 import numpy as np def approximate_contour(contours, epsilon_ratio=0.01): approximations = [] for contour in contours: perimeter = cv2.arcLength(contour, True) approximation = cv2.approxPolyDP( curve=contour, epsilon=epsilon_ratio * perimeter, closed=True ) approximations.append(approximation) return approximations ``` 此代码片段展示了如何利用弧长作为尺度因子调整 `epsilon` 参数[^1]。 #### 模板匹配的概念和技术细节 模板匹配技术旨在在一个较大图像内寻找特定子图案的最佳位置。OpenCV 提供了多种相似性测度选项,包括平方差 (`TM_SQDIFF`) 和标准化互相关 (`TM_CCOEFF_NORMED`) 方法等。 当执行模板匹配时,通常会先对源图像以及目标模式应用相同的预处理步骤(如灰度转换、阈值设定)。接着调用 `matchTemplate()` 执行卷积运算,并依据所选评估标准获取响应矩阵。最后定位峰值坐标即代表最佳匹配区域中心点的位置。 以下是 Python 实现示例: ```python template_image = cv2.imread('template.png', 0) # 加载模板图片为灰度图 main_image = cv2.imread('scene.jpg' , 0) # 加载场景图片也为灰度图 result = cv2.matchTemplate(main_image, template_image, cv2.TM_CCORR_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) top_left_corner = max_loc bottom_right_corner = (top_left_corner[0]+w, top_left_corner[1]+h) cv2.rectangle(main_image,top_left,bottom_right,(0,0,255),2) ``` 上述脚本说明了怎样读取两张不同尺寸但内容相关的单通道图像文件,并运用归一化的交叉关联算法完成精确搜索任务[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值