ImageJ实用技巧——自动图片拼接(基本功能篇)

Treasure琛

北漂4年,沪漂ing

通常在拍摄大型的,例如脑片、免疫组化等样本时,会遇到显微镜视野太小,需要多次拍摄的情况。

为了解决显微镜视野太小的问题,一般会使用电动平移台移动样品,对整个样品进行平铺扫描。然而由于精确性的原因,往往图像和图像之间存在位移或者重叠。这时候就需要对图片进行拼接,以获得完整图像。

这篇文章会针对图像拼接的各种情况,介绍ImageJ中不同的自动图像拼接方法。

官网对图像拼接的说明如下:

Image Stitchingimagej.net

自动图像拼接大概可以分为以下三种情况:

一、图片无重叠

二、图片有规律重叠

三、图片无规律重叠

下面会针对这三种情况,介绍不同的解决方案。

一、图片无重叠

这种情况并不多见,通常运用于理想情况下,图片无重叠分割后,重新拼接

(1)对于无重叠的两张图片(Stack),如下图所示

图片拼接方法(Image -> Stacks -> Tools -> Combine)

这里的情况需要横向拼接,如果要纵向拼接,可以勾选Combine vertically,拼接结果:

(2)对于无重叠的平铺扫描的一系列图片,如下图所示:

图片拼接方法(Plugins -> Stitching -> Grid/Collection stitching)

进行平铺扫描的图片拼接时,必须要知道扫描的方式(Type),方向(Order),这里的扫描方式是由左到右,由上到下,所以选择Grid: row-by-row,Right&Down

以及这组图片在x、y上的Grid size,即每行每列有几张图,这里总共有98张图片x轴上每行14张图片,y轴上每列7张图片。初始化窗口如下:

重点注意红框中的参数:

Directory:定义图片文件夹路径,待拼接的图片需要放入一个文件夹。

First file index i:定义i的初始值,这里定义i的初始值为1。

File name for tiles:读取命名为tile_{i}.tif的图片,这里的{i}是可变参数。

不要勾选Compute overlap,因为图片之间没有重叠。

拼接结果:

二、图片有规律重叠

这种情况是最常见的,特别是在平铺扫描的情况下,每张图片在x、y方向都可能有部分的重叠,且有一定的规律。

(1)对于有重叠的两张图片(Stack),如下图所示

图片拼接方法(Plugins -> Stitching -> Pixelwise Stitching of Images)

选择需要拼接的两张图片,弹出初始化窗口:

这里需要注意红框中的参数:

Subpixel accuracy:如果勾选,可以提高拼接的正确率,但会增加计算时间。

Registration channel image:选择拼接时参照的channel。这里的图片为8-bit只有一个通道,所以不用考虑,如果是RGB图片的拼接,需要选择最好的Channel来进行拼接。

该插件可以自动探测图片的重叠区域,并进行拼接,拼接结果:

如果拼接效果不佳,可以用矩形框选工具,先框选出特征区域,再进行拼接。

(2)对于有重叠的平铺扫描的一系列图片,如下图所示:

图片拼接方法与第一种情况一样(Plugins -> Stitching -> Grid/Collection stitching)

但唯一的不同是,在初始化窗口需要勾选Compute overlap,因为图片有重叠,拼接结果如下所示:

三、图片无规律重叠

这种情况也比较常见,比如手动拍摄的图片拼接,图片与图片的位置关系没有明显的规律,例如下图果蝇的图片:

图片拼接方法(Plugins -> Stitching -> Grid/Collection stitching)

但因为图片的位置关系位置,所以Type选择Unknown position。

初始化窗口就简单很多了,只需要确定文件夹路径等参数:

初始化窗口

确认需要拼接的图片

这种模式会自动检测图片的重叠部分,并通过重叠确定图片之间的位置关系,拼接结果如下:

拼接结果

如果上述所有方法都拼不好,建议直接用TrakEM2手动拼接:

TrakEM2imagej.net

如果对于ImageJ使用有什么问题可以私信我,或者给我发邮件:zhaoyc9@163.com

更多教程可以关注我的专栏:

ImageJ实用教程zhuanlan.zhihu.comImageJ开发教程zhuanlan.zhihu.com

希望对大家有帮助~

编辑于 04-02

ImageJ

图像处理

科研

点击数:0