Stiching 3D显微照片

时间:2016-08-11 15:44:34

标签: matlab image-processing

我有confocal microscope的几次扫描,我需要将它们合并。样品仅在一个方向上移动而在倾斜,视野,旋转方面没有任何变化,但重叠区域存在小的差异。图像均为灰度1024x1024 px

现在我手动拼接数据,裁剪图像并合并它们,这很慢,边缘非常明显。我可以使用Photoshop获得更好的效果,但我只能处理图像而不是高度数据。

我的想法是找到重叠区域,对齐图像并合并。现在,我一直在寻找共同点的坐标。

我尝试手动设置两个点并将其坐标存储在

        Left  Right
Coords=[0  0 ,X1 Y1;  % common points in 1st image
        X2 Y2,0  0];  % common points in 2nd image

然后使用这些点的周围并计算所有四个方向上的多个未对准区域之间的差异。最小的是,应该有最佳匹配...

Img{1}=double(imread(['foo.jpg']));
Img{2}=double(imread(['bar.jpg']));
span=1:21;
ms=round(mean(span));
for ii=span
  for jj=span
    IA=Img{1}(Coords(1,4)-50+ii-ms:Coords(1,4)+50+ii-ms,Coords(1,3)-50+jj-ms:Coords(1,3)+50+jj-ms);
    IB=Img{2}(Coords(2,2)-50+ii-ms:Coords(2,2)+50+ii-ms,Coords(2,1)-50+jj-ms:Coords(2,1)+50+jj-ms);
    Delta(ii,jj)=sum(sum(abs(IA-IB)));
  end
end

Delta应该在中心附近具有最小值,具体取决于Coords估算的准确性,但它看起来完全不同。

Delta

问题是,我的方法出错了,如何自动合并图像(半)?

0 个答案:

没有答案