kopia lustrzana https://github.com/OpenDroneMap/ODM
More memory efficient find_features_homography
rodzic
50162147ce
commit
2fea4d9f3d
|
@ -504,6 +504,28 @@ def find_features_homography(image_gray, align_image_gray, feature_retention=0.7
|
||||||
|
|
||||||
# Detect SIFT features and compute descriptors.
|
# Detect SIFT features and compute descriptors.
|
||||||
detector = cv2.SIFT_create(edgeThreshold=10, contrastThreshold=0.1)
|
detector = cv2.SIFT_create(edgeThreshold=10, contrastThreshold=0.1)
|
||||||
|
|
||||||
|
h,w = image_gray.shape
|
||||||
|
max_dim = max(h, w)
|
||||||
|
|
||||||
|
max_size = 1280
|
||||||
|
if max_dim > max_size:
|
||||||
|
if max_dim == w:
|
||||||
|
f = max_size / w
|
||||||
|
else:
|
||||||
|
f = max_size / h
|
||||||
|
image_gray = cv2.resize(image_gray, None, fx=f, fy=f, interpolation=cv2.INTER_AREA)
|
||||||
|
h,w = image_gray.shape
|
||||||
|
|
||||||
|
if align_image_gray.shape[0] != image_gray.shape[0]:
|
||||||
|
fx = image_gray.shape[1]/align_image_gray.shape[1]
|
||||||
|
fy = image_gray.shape[0]/align_image_gray.shape[0]
|
||||||
|
|
||||||
|
align_image_gray = cv2.resize(align_image_gray, None,
|
||||||
|
fx=fx,
|
||||||
|
fy=fy,
|
||||||
|
interpolation=(cv2.INTER_AREA if (fx < 1.0 and fy < 1.0) else cv2.INTER_LANCZOS4))
|
||||||
|
|
||||||
kp_image, desc_image = detector.detectAndCompute(image_gray, None)
|
kp_image, desc_image = detector.detectAndCompute(image_gray, None)
|
||||||
kp_align_image, desc_align_image = detector.detectAndCompute(align_image_gray, None)
|
kp_align_image, desc_align_image = detector.detectAndCompute(align_image_gray, None)
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue