Я пытаюсь зарегистрировать изображение МР с эталонным изображением CT. Я использую ORB на основе кода, который я скопировал и вставил онлайн, но мне не очень повезло с получением правильного сопоставления функций, как показано на рисунке ниже. Я надеюсь, что это можно исправить либо настройкой параметров ORB, либо параметрами ransa c. У кого-нибудь есть какие-нибудь указатели или советы? Было бы очень признательно
def featureMapping(img, refImg):
# create similar contrast in CT and MR images
img = exposure.equalize_hist(img)
refImg = exposure.equalize_hist(refImg)
orb = ORB(n_keypoints=1000, fast_threshold=0.01)
orb.detect_and_extract(refImg)
keypoints1 = orb.keypoints
descriptors1 = orb.descriptors
orb.detect_and_extract(img)
keypoints2 = orb.keypoints
descriptors2 = orb.descriptors
matches12 = match_descriptors(descriptors1, descriptors2, cross_check=True)
# Select keypoints from the source (image to be registered)
# and target (reference image)
src = keypoints2[matches12[:, 1]][:, ::-1]
dst = keypoints1[matches12[:, 0]][:, ::-1]
model_robust, inliers = ransac((src, dst), SimilarityTransform,
min_samples=10, residual_threshold=5, max_trials=300)
fig, ax = plt.subplots(1, 1, figsize=(30, 30))
plot_matches(ax, refImg, img, keypoints1, keypoints2, matches12[inliers])
#ax.axis('off')
plt.show()
Вот график соответствия ключевых сгенерированных точек и изображений, которые я пытаюсь зарегистрировать: Изображение