# -*- coding:utf8 -*-
import cv2
import numpy as np
#加载图像
input_file = 'image/2.jpg'
img = cv2.imread(input_file)
#将图像转化为灰度图像
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 显示图像
cv2.imshow('img',img)
cv2.imshow('img_gray',img_gray)
# 初始化SIFT检测器对象并提取关键点
sift = cv2.xfeatures2d.SIFT_create()
keypoints = sift.detect(img_gray,None)
print('keypoints类型',type(keypoints))
# keypoints 是指突出的点,但他们并不是特征 基本指出了突出点的位置,SIFT可以作为有效的特征提取器
#在输出图像上画出关键点
img_sift = np.copy(img)
cv2.drawKeypoints(img,keypoints,img_sift,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow('SIFT IMAGE',img_sift)
cv2.waitKey()
原图
原图
灰度图像
灰度图像
SIFT检测图像
SIFT检测图像
网友评论