我是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
在这里您可以看到原始图像和缝合图像进行比较。显示的是一个角落的缩放,该角落是原始图像之一的一部分
这是预期的行为吗?任何人都可以提示如何避免分辨率降低吗?
谢谢