
Nature cover for the paper on the developmental hourglass.
该项目探索将科学图像重建为大型科学图像数据库中考虑提取的其他科学图像的组合的算法。到具有良好色彩平衡的大型数据库,生成的图像可能在视觉上令人惊叹。here提供了这样的数据库插件作为起点,其中包含约66,000个果蝇共同发生中基因表达模式的图像。该结果可以使用封面艺术的材料,例如前面的《自然》一个封面。
有许多在线或离线解决方案可用于以这种方式重建图像,其中一些无疑比CoverMaker更复杂。CoverMaker是开源的,已集成到斐济,因此可以作为探索相关图像分析问题的平台。欢迎大家改进代码和算法,贡献更多的图像数据库展示和他们的实验结果。
请注意,Nature 封面不是用 CoverMaker 插件制作的,但它启发了其后续开发。下面我们展示了著名的绘画著名的 Ernst Haeckel 独立图的图像模板以及使用 CoverMaker 生成的输出结果图像。有关更多示例,请跳至 Gallery 部分。
Drawing of Haeckel embryos

For afficionados this is in fact Romanes’ 1892 copy of the Ernst Haeckel drawing. If you consider Haeckel a fraud, think again and start by reading the excellent Robert J. Richards book “The Tragic Sense of Life”.
CoverMaker rendition of Haeckel embryos

The image was generated using a database of 66,579 images of gene expression pattern during Drosophila embryogenesis visualized by histochemical RNA in situ hybridization.
画廊
以下是一些 CoverMaker 图片示例。请随意send你的实验,特别是如果你把它放在封面上;-)。
这是如何工作的
原理很简单。将模板图像划分为与下采样数据库图像具有相同像素尺寸的图(例如,如所提供的图像数据库中的情况,12 x 9像素)。然后,程序系统地遍历模板图像的小块,置入最佳像素颜色匹配的数据库图像。我们通过对模板与所有数据库图像之间的像素和颜色块显示差异和颜色差异的计算并选择总和(即差异)最小的数据库图像来实现此目的。还有其他可能的指标,但这个指标对于数据库效果很好。
图模板被裁剪为与图大小兼容的尺寸(即,对于 12x9 图块,尺寸必须分别能被 12 和 9 整除)。每个数据库图只能使用一次,因此,随着构建的进行,数据库可能会“成年”特定的和颜色形状。为了尽量减少这种影响,我们将图随机块放置到图中。
棘手的部分是准备数据库。我们提供基于包含 12x9 像素图块的干原位数据的pre-computed database。您可以使用Prepare CoverMaker Database脚本生成自己的数据库,该脚本会搜索文件系统所需的所有可用的 RGB jpeg 下面采集到所需的图块尺寸。 最后,为了打印海报尺寸的图像,插件将在其操作的第二步中(在以图像模板的原始分辨率形成输出图像之后)使用可用的原始图像数据库here或由您使用Prepare CoverMaker Database脚本生成的原始图像数据库以所需的 dpi 解析生成任意大的图像输出。
封面制作教程
Template image

我们将首先打开一个预设模板的图像。目前它需要是 RGB 图像。它可以有任何尺寸,但是到增加的图像将需要更多的图像来填充,这将花费很长时间并且效果不会那么好。考虑右边显示好的斐济标志是一个开始。另外,斐济样本图像明显其中之一(例如 clown.jpg)也能快速给出良好的结果。
I would recommend having only one image opened before proceeding further.
现在,我们通过转到Plugins › Examples › Cover Maker › Prepare Cover Maker Database来启动CoverMaker python脚本。(或输入L并使用关键字cover进行搜索)。
The initial CoverMaker dialog box

将出现一个基本对话框,提示我们通过单击并在文件系统中找到包含下采样图像的tif file来选择图像数据库。 tif 文件名为 12_9.tif,表示图像已缩放至 12x9 像素尺寸。这是默认的图块尺寸。如果您使用具有不同纵横比的不同数据库,请更改对话框中的默认图块宽度和高度。
接下来单击,重建将开始。第一步,模板图像将被裁剪为图块宽度和高度的倍数(未显示,有关裁剪问题的评论,请参阅Future work。
下面我们监控构建封面的进度
Starting

Progress 1

Progress 2

Almost there

Finished Cover


The second CoverMaker dialog box for saving high resolution output
重建完成后,会弹出第二个对话框。在这里,我们可以选择程序,完成的低分辨率图像将保持打开状态,并可以使用正常的斐济程序保存。
如果我们喜欢实验结果,我们可以使用原始图像以高分辨率保存它。我们可以决定输出图像的最终分辨率(以 dpi 为单位),指定宽度或高度(以像素或英寸为单位)。这些字段是链接的,并且在我们编辑不同参数时应该更新。
接下来,我们需要单击 并找到包含原件的zip file。最后,我们单击,最终高分辨率输出图像的构建将开始,如下所示。请注意,现在图像按顺序增长,因为我们已经知道将初始运行中的图像放置在哪里,并且不再需要randomization。
Starting

Progress 1

Progress 2

Almost there

Finished Cover

当我们放大本例中以 300dpi 生成的最终输出图像并与初始重建图像进行比较时,我们将看到数据库图像的细节更加丰富。图像几乎可以任意放大并打印为大海报。
The downsampler we use does not do a good job upsampling, thus when the originals are too small for a given dpi size combination artifacts in the output image will occur (grid of lines). This exception is currently not handled properly.

Close up on the Initial low resolution image

Close up on the final high resolution image
准备 CoverMaker 数据库
在许多方面,准备图像数据库比实际执行重建更棘手。 Prepare_CoverMaker_Database.py 脚本 (Plugins › Examples › CoverMaker › Cover Maker) 的目的是探索本地文件系统中可用于构建数据库的 RGB 图像。由于在此过程中可能会出现很多问题,因此应将其视为实验性的。
输入/搜索/输出
在开始搜索图像之前,我们必须确定图像集中存在的主要纵横比。显然,由于图块都具有相同的尺寸,因此输入图像的不同纵横比会在下采样到该共同图块尺寸期间导致变形。幸运的是,由于 CoverMaker 的目标是科学成像,因此在大多数情况下,大型图像数据库将具有统一的或一个主要的长宽比。
Input and output parameters dialog

The user must also specify the aspect ratio and base directory under which the images are to be found.
输出参数是下采样图块的最小和最大图块宽度和高度。它们应该与宽高比兼容(为了方便起见,宽度和高度在对话框中链接)。用户可以指定一系列图块尺寸(通过指定最小和最大宽度和高度),脚本将以一个像素为增量在这些尺寸之间生成缩放比例。请注意,范围不应太宽(通常在 10 到 20 像素之间)。当最小值和最大值相同时,只会生成单个图块大小。 最后,用户必须指定图像应缩放到的原始宽度和高度。如果这些尺寸与文件系统上的主要图像尺寸相同,则不会发生缩放,但这将复制搜索期间遇到的每个图像。生成的 zip 存档可能会变得太大。请注意,图像不需要很大,因为当 CoverMaker 以合理的分辨率输出最终图像时,它们会再次缩小。
Progress log

The script will then recursively traverse the directory tree under this root looking for images with extensions jpeg, jpe and jpg. The extensions to be searched are currently hardcoded. During the search the script will write into ImageJ log the images it encountered and what is being done with them. Hopefully most images will have the matching aspect ratio specified above and will be scaled. Images with different aspect ratios will be skipped.
脚本的输出是两种类型的文件:
- 包含指定尺寸的下采样图像图块的 tif 堆栈(命名约定为
width_height.tif,即 12x9 像素图块12_9.tif)。将为每个输出图块尺寸生成单独的 tif 文件 - 原始图像的一个 zip 存档,缩放至参数 原始宽度 和 原始高度 中指定的大小(请注意,不应解压缩此文件)
两个输出文件都保存在基本目录中。它们可以直接在 CoverMaker 插件中使用。
潜在问题
有时,具有类似 jpeg 扩展名的图像实际上并不是 jpeg。该脚本当前检查图像是否具有三个通道,如果不是,则跳过该图像。然而,根据我的经验,在探索具有不同图像的大型文件系统时,可能会发生很多意想不到的事情。最后,由于搜索大型文件系统可能需要一些时间,随机错误、损坏的图像或内存不足可能会导致脚本崩溃。
捕获这些错误是脚本未来改进的挑战。
数据库
目前,我们提供为 CoverMaker 准备的单一图像数据库。该数据库包含 81,751 张 果蝇 胚胎的图像,这些图像是通过 RNA 原位杂交与约 6000 个基因的探针进行染色的。图像已缩放至 12x9 像素大小,形成一个 tif 堆栈,可用作 CoverMaker 插件的输入。此外,为了保存高分辨率图像,您将需要原始图像的匹配 zip 存档。
| 数据库类型 | 鳞片瓷砖 | 原件(请勿解压缩) |
| 果蝇胚胎原位 | 12_9.tif (16.6MB) | originals.zip (1.45GB) |
Do not unzip the originals.zip archive. The CoverMaker is able to extract the relevant images.
更多科学数据库即将到来……请随时send我你的。
实施和致谢
该插件是在 Madison ImageJ2/Fiji hackathon in January 2011 期间作为 Jython 脚本编写的。繁重的工作是使用 in lined Java 代码片段(由 Stephan Saalfeld 提供)执行的。所有大规模下采样都是使用Albert Cardona适当的downsampler完成的。 Johannes Schindelin 对对话监听器提供了很多帮助,并将为后代维护该插件。 顺便说一句,这个插件其起源是斐济和黑客马拉松的一个很好的例子。参加黑客马拉松时,我对Python一无所知,只有Java和ImageJ代码库的知识。然后十我就写完了这个插件,可能会让斐济的极客们因为我不断提出的基本(或彻头彻尾的傻)问题而发疯。但对生物学家来说,最重要的信息是:这是可以做到的!
未来的工作
显然还有改进的空间。以下是我的想法,但请随意提供更多的功能,或者更好的,继续实施它们。
- 实施、测试和评估更多颜色指标
- 研究瓷砖铺设的优化策略
- 通过采取适当的越策略界,避免削减模板
- 实现不同的瓷砖几何形状(例如六边形)
- 将其全部移植到Java,特别是ImgLib2中连接更好的性能(希望如此)











