import numpy as np
import cv2
import os
from scipy import ndimage
from skimage.io import imread, imsave
from osgeo import gdal
def sift_kp(image):
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d_SIFT.create()
kp, des = sift.detectAndCompute(gray_image, None)
kp_image = cv2.drawKeypoints(gray_image, kp, None)
return kp_image, kp, des
def get_good_match(des1, des2):
bf = cv2.BFMatcher()
matches = bf.knnMatch(des1, des2, k=2)
good = []
for m, n in matches:
if m.distance < 0.75 * n.distance:
good.append(m)
return good
def surf_kp(image):
'''SIFT(surf)特征点检测(速度比sift快),精度差了很多'''
height, width = image.shape[:2]
size = (int(width * 0.2), int(height * 0.2))
shrink = cv2.resize(image, size, interpolation=cv2.INTER_AREA)
gray_image = cv2.cvtColor(shrink, cv2.COLOR_BGR2GRAY)
surf = cv2.xfeatures2d_SURF.create()
kp, des = surf.detectAndCompute(gray_image, None)
kp_image = cv2.drawKeypoints(gray_image, kp, None)
return kp_image, kp, des
def siftImageAlignment(img1, img2):
_, kp1, des1 = sift_kp(img1)
_, kp2
主人的任务罢了,海面溢油检测
最新推荐文章于 2024-09-07 20:37:50 发布