Я новичок в openCV и использую его для сшивания нескольких изображений с микроскопа. Следовательно, аффинных преобразований отдельных изображений должно быть достаточно.
Класс Stitcher удобен в использовании и позволяет быстро собрать набор изображений. Однако при увеличении масштаба я понял, что разрешение результата значительно ниже, чем у оригинала. Я также попытался увеличить частоту перед сшиванием изображений, что не принесло никаких улучшений.
Вот фрагмент кода, который я использую:
up = 3
stitcher = cv2.Stitcher_create(mode=cv2.Stitcher_SCANS)
images_up = [im.repeat(up, axis=0).repeat(up, axis=1) for im in images]
(status, stitched) = stitcher.stitch(images_up)
#stitched = stitched.reshape(stitched.shape[0]//2, 2, stitched.shape[1]//2, 2).sum(1,3)
print(status)
stitched = stitched.astype(float).mean(-1) # sum RGB to grayscale
stitched = cv2.resize(stitched, (stitched.shape[0]//up, stitched.shape[1]//up)) #sample down
Здесь вы можете увидеть исходные и сшитые изображения для сравнения. Показан увеличенный угол, который является частью одного из исходных изображений
Ожидается ли такое поведение? Кто-нибудь может подсказать, как избежать потери разрешения?
Спасибо