Open christofhapp opened 3 years ago
I use the ORB image registration algorithm and it worked until 4.1.2.30. Same solution on same data!
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.
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
sorry, i don't know if it is a opencv-python issue or a opencv issue.
Potentially related: https://github.com/opencv/opencv/issues/16701
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
Issue submission checklist
sorry, i don't know if it is a opencv-python issue or a opencv issue.