from email.mime import image
import imghdr
from turtle import title
import cv2
import matplotlib.pyplot as plt
import numpy as np
from sympy import sift
def cv_show(img,name):
cv2.namedWindow(name,0)
cv2.resizeWindow(name, 640, 480)
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
sift=cv2.xfeatures2d.SIFT_create()
gray=cv2.imread('a.jpg')
a=gray
kp1,des1=sift.detectAndCompute(gray,None)
img=cv2.drawKeypoints(gray,kp1,None,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv_show(img,'sift')
#save
cv2.imwrite('sifta.jpg',img)
gray=cv2.imread('b.jpg')
kp2,des2=sift.detectAndCompute(gray,None)
img=cv2.drawKeypoints(gray,kp2,None,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv_show(img,'sift')
#save
cv2.imwrite('siftb.jpg',img)
bf=cv2.BFMatcher()
matches=bf.match(des1,des2)
matches=sorted(matches,key=lambda x:x.distance)
img3=cv2.drawMatches(a,kp1,gray,kp2,matches[:100],None,flags=2)
cv_show(img3,'sift')
#保存
cv2.imwrite('aftersift.jpg',img3)