- OpenCV Python 教程
- OpenCV Python - 首页
- OpenCV Python - 概述
- OpenCV Python - 环境配置
- OpenCV Python - 读取图像
- OpenCV Python - 写入图像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 图像属性
- OpenCV Python - 位运算
- OpenCV Python - 形状和文本
- OpenCV Python - 鼠标事件
- OpenCV Python - 添加轨迹条
- OpenCV Python - 缩放和旋转
- OpenCV Python - 图像阈值
- OpenCV Python - 图像滤波
- OpenCV Python - 边缘检测
- OpenCV Python - 直方图
- OpenCV Python - 颜色空间
- OpenCV Python - 图像变换
- OpenCV Python - 图像轮廓
- OpenCV Python - 模板匹配
- OpenCV Python - 图像金字塔
- OpenCV Python - 图像加法
- OpenCV Python - 图像混合
- OpenCV Python - 傅里叶变换
- OpenCV Python - 捕捉视频
- OpenCV Python - 播放视频
- OpenCV Python - 从视频中提取图像
- OpenCV Python - 从图像生成视频
- OpenCV Python - 人脸检测
- OpenCV Python - 均值漂移/CamShift
- OpenCV Python - 特征检测
- OpenCV Python - 特征匹配
- OpenCV Python - 数字识别
- OpenCV Python 资源
- OpenCV Python - 快速指南
- OpenCV Python - 资源
- OpenCV Python - 讨论
OpenCV Python - 特征检测
在图像处理的背景下,特征是图像中关键区域的数学表示。它们是图像视觉内容的向量表示。
特征使得对它们进行数学运算成为可能。各种计算机视觉应用包括目标检测、运动估计、分割、图像对齐等。
任何图像中的突出特征包括边缘、角点或图像的一部分。OpenCV 支持**Harris 角点检测**和**Shi-Tomasi 角点检测**算法。OpenCV 库还提供了实现**SIFT**(尺度不变特征变换)、**SURF**(加速鲁棒特征)和 FAST 算法进行角点检测的功能。
Harris 和 Shi-Tomasi 算法是旋转不变的。即使图像旋转,我们也可以找到相同的角点。但是,当图像放大时,如果图像,角点可能不再是角点。下图描述了这一点。
D.Lowe 的新算法,**尺度不变特征变换**(SIFT)提取关键点并计算其描述符。
这是通过以下步骤实现的:
- 尺度空间极值检测。
- 关键点定位。
- 方向分配。
- 关键点描述符。
- 关键点匹配。
就 OpenCV 中 SIFT 的实现而言,它从加载图像并将其转换为灰度图像开始。**cv.xfeatures2d.SIFT_create()** 函数创建一个 SIFT 对象。
示例
调用其**detectAndCompute()** 方法获取关键点,这些关键点绘制在原始图像的顶部。以下代码实现了此过程
import numpy as np import cv2 as cv img = cv.imread('home.jpg') gray= cv.cvtColor(img,cv.COLOR_BGR2GRAY) sift = cv.SIFT_create() kp = sift.detect(gray,None) img=cv.drawKeypoints(gray,kp,img) cv.imwrite('keypoints.jpg',img)
输出
原始图像和绘制了关键点的图像如下所示:
这是一张**原始图像**。
下图是**带有关键点的图像**:
广告