9.6 检测SIFT特征点

2018-11-09  本文已影响0人  MaskStar
# -*- 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检测图像
上一篇下一篇

猜你喜欢

热点阅读