一、源码
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函数接受一个输入图像作为参数,并返回两个输出结果:关键点和特征描述子。
关键点(KeyPoints)是图像中具有显著性的位置,通常对应于图像中的角点、边缘或纹理等特征。这些关键点可以用于表示图像中的重要信息。
特征描述子(Descriptors)是对关键点周围区域的描述,通常是一组数值或向量。它们用于表示关键点周围的局部图像特征,例如颜色、纹理或形状等。特征描述子可以用于比较和匹配不同图像之间的相似性。
detectAndCompute函数的具体实现方式取决于所使用的特征检测器和描述子提取器。常见的特征检测器包括SIFT、SURF和ORB等,而描述子提取器包括SIFT、SURF、ORB和BRIEF等。
二、步骤
1、高斯模糊
2、去灰
3、启动SIFT
4、获取特征点与特征描述符
三、效果
1、原始图片
2、运行结果
3、特征描述符
四、结论
获取特征比较容易,难在于获取到的特征在之后如何进行处理和比对