OpenCV-Python Feature2D 特征点检测 (SIFT,SURF)
git
LINK
下面介绍属于nonfree的特征检测方法,如SIFT和SURF。
这些方法在opencv-contrib中,所以想要使用前,请卸载当前非contrib版本的opencv,即pip uninstall opencv-python后;再重新安装opencv-contrib-python,即pip install opencv-contrib-python
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python
SIFT Feature Detection
#!/usr/bin/env python
# -*- coding=utf-8 -*-
# Summary: 使用OpenCV3.x-Python检测SIFT特征点
# Author: Amusi
# Date: 2018-03-17
# Reference: https://docs.opencv.org/master/d5/d3c/classcv_1_1xfeatures2d_1_1SIFT.html
import cv2
import numpy
def main():
img = cv2.imread("lena.png")
cv2.imshow('Input Image', img)
cv2.waitKey(0)
# 检测
sift = cv2.xfeatures2d.SIFT_create()
keypoints = sift.detect(img, None)
# 显示
# 必须要先初始化img2
img2 = img.copy()
img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0))
cv2.imwrite('sift.png', img2)
cv2.imshow('Detected SIFT keypoints', img2)
cv2.waitKey(0)
if __name__ == '__main__':
main()
SURF Feature Detection
#!/usr/bin/env python
# -*- coding=utf-8 -*-
# Summary: 使用OpenCV3.x-Python检测SURF特征点
# Author: Amusi
# Date: 2018-03-17
# Reference: https://docs.opencv.org/master/d5/df7/classcv_1_1xfeatures2d_1_1SURF.html
import cv2
import numpy
def main():
img = cv2.imread("lena.png")
cv2.imshow('Input Image', img)
cv2.waitKey(0)
# 检测
surf = cv2.xfeatures2d.SURF_create()
keypoints = surf.detect(img, None)
# 显示
# 必须要先初始化img2
img2 = img.copy()
img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0))
cv2.imshow('Detected SURF keypoints', img2)
cv2.waitKey(0)
if __name__ == '__main__':
main()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)