#coding=utf-8
import cv2
#cv2.__version__==3.2.0
import numpy
as np
#Extracting Features
#Detecting the corners
# img=cv2.imread('corner.bmp',cv2.IMREAD_ANYCOLOR)
# gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# gray = np.float32(gray)
# dst = cv2.cornerHarris(gray, 4,5, 0.04) # to detect only sharp corners
# # dst = cv2.cornerHarris(gray, 14, 5, 0.04) # to detect soft corners
# # Result is dilated for marking the corners
# dst = cv2.dilate(dst,None)
# # Threshold for an optimal value, it may vary depending on the image.
# img[dst > 0.01*dst.max()] = [0,0,0]
# cv2.imshow('Harris Corners',img)
# cv2.waitKey()
#####################
# corners = cv2.goodFeaturesToTrack(gray, 7, 0.05, 25)
# corners = np.float32(corners)
# for item in corners:
# x, y = item[0]
# cv2.circle(img, (x,y), 5, 255, -1)
# cv2.imshow("Top 'k' features", img)
# cv2.waitKey()
####################################################
#SIFT
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
sift = cv2.xfeatures2d.SIFT_create()
keypoints1, descriptors1 = sift.detectAndCompute(gray_image,
None)
print(
'SIFT features',
len(keypoints1))
input_image = cv2.drawKeypoints(input_image, keypoints1,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'SIFT features', input_image)
# cv2.waitKey()
#######################################################
#SURF
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
surf = cv2.xfeatures2d.SURF_create()
keypoints1, descriptors1 = surf.detectAndCompute(gray_image,
None)
print(
'SURF_create',
len(keypoints1))
input_image = cv2.drawKeypoints(input_image, keypoints1,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'SURF_create', input_image)
# cv2.waitKey()
#######################################################
#StarDetector
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
StarDetector = cv2.xfeatures2d.StarDetector_create()
keypoints=StarDetector.detect(gray_image)
# keypoints1, descriptors1 = descriptor_sift.detectAndCompute(gray_image,None)
print(
'Star_create',
len(keypoints1))
input_image = cv2.drawKeypoints(input_image, keypoints1,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'Star_create', input_image)
# cv2.waitKey()
#FAST not have descriptor use BRIEF
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
fast = cv2.FastFeatureDetector_create()
# Initiate BRIEF extractor
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()
keypoints=fast.detect(gray_image)
print(
'FAST_create',
len(keypoints))
# compute the descriptors with BRIEF
keypoints, descriptors = brief.compute(gray_image, keypoints)
input_image = cv2.drawKeypoints(input_image, keypoints,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'FAST_create', input_image)
# cv2.waitKey()
#######################################################
#ORB not have descriptor use BRIEF
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
orb = cv2.ORB_create()
keypoints, descriptors1=orb.detectAndCompute(gray_image,
None)
# keypoints=org.detect(gray_image)
print(
'ORB_create',
len(keypoints))
input_image = cv2.drawKeypoints(input_image, keypoints,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'ORB_create', input_image)
# cv2.waitKey()
#######################################################
#MSER not have descriptor use BRIEF
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
mser = cv2.MSER_create()
# Initiate BRIEF extractor
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()
keypoints=mser.detect(gray_image)
print(
'MSER_create:',
len(keypoints))
# compute the descriptors with BRIEF
keypoints, descriptors = brief.compute(gray_image, keypoints)
input_image = cv2.drawKeypoints(input_image, keypoints,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'MSER_create', input_image)
# cv2.waitKey()
#######################################################
#BRISK not have descriptor use BRIEF
input_image=cv2.imread(
'corner.bmp',cv2.IMREAD_ANYCOLOR)
gray_image = cv2.cvtColor(input_image,cv2.
COLOR_BGR2GRAY)
dummy = np.zeros((
1,
1))
brisk = cv2.BRISK_create()
keypoints, descriptors1=brisk.detectAndCompute(gray_image,
None)
input_image = cv2.drawKeypoints(input_image, keypoints,dummy,
flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow(
'BRISK_create', input_image)
cv2.waitKey()
转载请注明原文地址: https://ju.6miu.com/read-666181.html