- 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 - 图像Pyramid
- OpenCV Python - 图像相加
- OpenCV Python - 图像混合
- OpenCV Python - 傅里叶变换
- OpenCV Python - 捕获视频
- OpenCV Python - 播放视频
- OpenCV Python - 视频图像
- OpenCV Python - 来自图像的视频
- OpenCV Python - 人脸检测
- OpenCV Python - Meanshift/Camshift
- OpenCV Python - 特征检测
- OpenCV Python - 特征匹配
- OpenCV Python - 数字识别
- OpenCV Python 资源
- OpenCV Python - 快速指南
- OpenCV Python - 资源
- OpenCV Python - 讨论
OpenCV Python - 特征检测
在图像处理的背景下,特征是图像中关键区域的数学表示。它们是图像视觉内容的矢量表示。
特征使得对它们执行数学运算成为可能。各种计算机视觉应用包括目标检测、运动估计、分割、图像对齐等。
任何图像中的显着特征包括图像的边缘、角或部分。OpenCV支持Haris角点检测和Shi-Tomasi角点检测算法。OpenCV 库还提供了实现SIFT(尺度不变特征变换)、SURF(加速鲁棒特征)和 FAST 算法以进行角点检测的功能。
Harris 和 Shi-Tomasi 算法是旋转不变的。即使图像旋转,我们也可以找到相同的角点。但当图像放大时,图像中的角点可能不再是角点。下图描述了同样的情况。
D.Lowe 的新算法,尺度不变特征变换(SIFT) 提取关键点并计算其描述符。
这是通过以下步骤实现的 -
- 尺度空间极值检测。
- 关键点定位。
- 定向作业。
- 关键点描述符。
- 关键点匹配。
就OpenCV中SIFT的实现而言,它从加载图像并将其转换为灰度开始。cv.SHIFT_create ()函数创建一个 SIFT 对象。
例子
调用它的detector()方法获取绘制在原始图像之上的关键点。下面的代码实现了这个过程
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)
输出
原始图像和绘制关键点的图像如下所示 -
这是原始图像。
下面给出的图像是带有关键点的图像-