自学内容网 自学内容网

【python】图像识别-使用SIFT获取图像特征

一、源码

import pyautogui
import cv2
import numpy as np
import time
import os
GAUSSIAN_EN = 1
# 获取屏幕尺寸
# ...
image = cv2.imread('9.jpg')
# 进行高斯模糊
if GAUSSIAN_EN:
    img_dst = cv2.stackBlur(image, (13, 9))
else:
    img_dst = image
# 将截图转换为OpenCV图像格式
gray = cv2.cvtColor(img_dst, cv2.COLOR_RGB2GRAY)
# 在这里进行OpenCV图像处理和分析
# ...
detector = cv2.xfeatures2d.SIFT_create()  # 使用SIFT特征检测器
keypoints, descriptors = detector.detectAndCompute(gray, None)
print(descriptors)
image_with_keypoints = cv2.drawKeypoints(image, keypoints, None)
cv2.imshow('Image with Keypoints', image_with_keypoints)
cv2.waitKey(0)
cv2.destroyAllWindows()

 1、cv2.xfeatures2d.SIFT_create

cv2.xfeatures2d.SIFT_create是OpenCV中的一个函数,用于创建SIFT(尺度不变特征变换)算法的对象。SIFT是一种经典的计算机视觉算法,用于在图像中检测和描述关键点。它具有尺度不变性和旋转不变性,因此在图像匹配、目标跟踪和三维重建等任务中广泛应用。

SIFT_create函数的作用是创建一个SIFT算法的实例,可以用于提取图像中的SIFT特征点。该函数没有参数,返回一个SIFT算法对象。

2、detector.detectAndCompute

detector.detectAndCompute是一个在计算机视觉领域常用的函数,用于在图像中检测并计算关键点和特征描述子。它通常用于目标检测、图像匹配和特征提取等任务。

具体来说,detectAndCompute函数接受一个输入图像作为参数,并返回两个输出结果:关键点和特征描述子。

  1. 关键点(KeyPoints)是图像中具有显著性的位置,通常对应于图像中的角点、边缘或纹理等特征。这些关键点可以用于表示图像中的重要信息。

  2. 特征描述子(Descriptors)是对关键点周围区域的描述,通常是一组数值或向量。它们用于表示关键点周围的局部图像特征,例如颜色、纹理或形状等。特征描述子可以用于比较和匹配不同图像之间的相似性。

detectAndCompute函数的具体实现方式取决于所使用的特征检测器和描述子提取器。常见的特征检测器包括SIFT、SURF和ORB等,而描述子提取器包括SIFT、SURF、ORB和BRIEF等。

二、步骤

1、高斯模糊

2、去灰

3、启动SIFT

4、获取特征点与特征描述符

三、效果

1、原始图片

2、运行结果

3、特征描述符

 四、结论

获取特征比较容易,难在于获取到的特征在之后如何进行处理和比对


原文地址:https://blog.csdn.net/qq_34217861/article/details/137680035

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!