Open
Description
Expected behaviour
I use the ORB image registration algorithm and it worked until 4.1.2.30. Same solution on same data!
Actual behaviour
From Version 4.1.2.32 to newest (4.5.1.48) it has a different (wrong) solution on the same data AND it needs about 3 times more time.
Steps to reproduce
def alignImages(im, imRef):
MAX_FEATURES = 1000
GOOD_MATCH_PERCENT = 0.5
# Detect ORB features and compute descriptors.
orb = cv2.ORB_create(MAX_FEATURES, scaleFactor=2, WTA_K=4, scoreType=cv2.ORB_HARRIS_SCORE, patchSize=61)
keypoints1, descriptors1 = orb.detectAndCompute(im, None)
keypoints2, descriptors2 = orb.detectAndCompute(imRef, None)
#print('after kp2: ', time.time() - t)
print('len keypoints:', len(keypoints1), ' ',len(keypoints2))
# Match features.
matcher = cv2.DescriptorMatcher_create(cv2.DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMING)
matches = matcher.match(descriptors1, descriptors2, None)
#print('after matcher: ', time.time() - t)
# Sort matches by score
matches.sort(key=lambda x: x.distance, reverse=False)
# Remove not so good matches
numGoodMatches = int(len(matches) * GOOD_MATCH_PERCENT)
matches = matches[:numGoodMatches]
# Extract location of good matches
points1 = np.zeros((len(matches), 2), dtype=np.float32)
points2 = np.zeros((len(matches), 2), dtype=np.float32)
for i, match in enumerate(matches):
points1[i, :] = keypoints1[match.queryIdx].pt
points2[i, :] = keypoints2[match.trainIdx].pt
# Find homography
h, mask = cv2.findHomography(points1, points2, cv2.RANSAC)
return h
- operating system: WIN 10 64-bit
Issue submission checklist
sorry, i don't know if it is a opencv-python issue or a opencv issue.
Metadata
Metadata
Assignees
Labels
No labels