原始测试数据

我们打开了 792 个真实切片文件,并公布了每一项结果

格式支持表通常只是有人随手列出的一串扩展名,而这张表是实测结果。涵盖 14 个格式家族的每一个文件——共 44.1 GB 的厂商扫描和公开参考图像——都由正式发布的 SlideScope 加载器打开并渲染,每个文件使用一个可牺牲的子进程,并记录结果。767 个成功打开。9 个无法读取,下文列出了它们的名称。16 个实际上根本不含图像。没有一个导致查看器崩溃。

792 个文件 14 个格式家族 共测试 44.1 GB 运行于 2026-09-18

这项基准测试究竟证明了什么?

它证明的是:一个有名有姓的文件,来自一台有名有姓的扫描仪,以其真实大小,能在正式发布的版本中打开并在屏幕上显示像素。不多也不少。格式支持列表声称具备某种能力;而这项测试是在度量这种能力。如果某种厂商布局让解码器失败,该文件会连同用户将看到的错误信息一起出现在失败表中,而不是被悄悄略去。

这是一项厂商自测——软件是我们写的,测试也是我们做的。它之所以仍然值得一读,是因为您可以核查:语料库是公开的,运行脚本在我们的桌面端代码仓库中,而且逐文件原始结果就在本页。

文件是如何测试的

每个文件都交给一个可牺牲的子进程处理,该子进程构建与应用程序相同的加载器,读取图像尺寸,解码一个平面,并通过查看器所用的同一 Qt 渲染路径进行转换。如果一个格式错误的文件导致原生编解码器中止,被终止的只是那个子进程;监控进程会记录当时正在处理的文件并继续运行。正是这种设计,才让一项涉及数 GB 厂商扫描的基准测试得以完成,也让“崩溃”这一类别能如实报告为零。

  • 运行脚本:slidescope-desktop/scripts/publish_format_benchmark.py——SlideScope 桌面端代码仓库中的一条命令,运行全部三轮测试,并写出本页所渲染的那份 JSON:python scripts/publish_format_benchmark.py --dataset <corpus> --output format-benchmark.json
  • 语料库:Open Microscopy Environment 公开参考语料库、OpenSlide 公布的测试切片、czitools 和 nd2 库的测试数据,以及我们已对照发布方核验过 sha256 的厂商样本。
  • 范围:全切片和厂商显微镜格式。来自厂商批量导出的零散单平面 TIFF 不在此列——它们能说明的问题,金字塔式 WSI TIFF 都能说明得更好。
  • 每个文件记录的内容:检测到的格式、加载器、解码后的 T/Z/C/Y/X 维度、像素类型、渲染尺寸,以及失败时的异常类型和面向用户的提示信息。

全切片图像格式

这些是扫描仪格式——来自 Aperio、Hamamatsu、3DHISTECH、Leica、Ventana、Akoya 或 Agilent 仪器的文件,通常有好几 GB。

格式 文件数 已打开 结果 最大图像 最大文件 可达维度 像素类型
.avs Agilent ARGOS AVS 2 2 全部打开 130,546 × 57,440 (7499 MP) 439 MB 单平面 uint8
.bif Ventana BIF 2 1 1 个无法读取 114,943 × 76,349 (8776 MP) 2.5 GB 单平面 uint8
.mrxs 3DHISTECH MIRAX 6 6 全部打开 109,240 × 220,696 (24109 MP) 72 KB 单平面 uint8
.ndpi Hamamatsu NDPI 5 5 全部打开 211,200 × 95,744 (20221 MP) 4.2 GB 单平面 uint8
.qptiff Akoya QPTIFF 2 2 全部打开 30,720 × 26,640 (818 MP) 1.9 GB 5C uint8
.scn Leica SCN 3 1 2 个无法读取 53,130 × 153,470 (8154 MP) 2.8 GB 单平面 uint8
.svs Aperio SVS 7 7 全部打开 96,999 × 45,667 (4430 MP) 671 MB 单平面 uint8
.vms Hamamatsu VMS 3 3 全部打开 143,360 × 101,888 (14607 MP) 1 KB 单平面 uint8

显微镜和医学影像格式

多维采集格式,这里值得关注的不是文件大小,而是有多少通道、Z 平面和时间点能完整显示到屏幕上。

格式 文件数 已打开 结果 最大图像 最大文件 可达维度 像素类型
.czi Zeiss CZI 48 48 全部打开 6,000 × 6,000 (36 MP) 4.2 GB 8C · 56Z · 10T uint16, uint8
.dcm DICOM 378 362 16 个不含图像 77,687 × 73,366 (5700 MP) 1.2 GB 137Z int16, uint16, uint8
.dicom DICOM 1 1 全部打开 512 × 512 (0 MP) 514 KB 单平面 uint16
.ims Imaris IMS 17 11 6 个无法读取 4,096 × 4,096 (17 MP) 946 MB 3C · 98Z · 10T uint16, uint8
.lif Leica LIF 3 3 全部打开 1,024 × 1,024 (1 MP) 2.8 GB 5C · 5T uint16, uint8
.nd2 Nikon ND2 82 82 全部打开 2,400 × 2,400 (6 MP) 376 MB 5C · 35Z · 288T uint16, uint8
.tif TIFF / OME-TIFF 200 200 全部打开 17,927 × 20,273 (363 MP) 1.0 GB 8C · 10Z · 43T float32, int8, uint8
.tiff TIFF / OME-TIFF 33 33 全部打开 45,056 × 35,840 (1615 MP) 2.5 GB 3C · 38Z · 7T float32, int8, uint8

每一个未能打开的文件及原因

792 个文件中有 25 个未能打开,但它们分属两种情况,而非一种。9 个是真正的局限:确实是图像,但我们目前无法读取。另外 16 个文件本来就不含图像,拒绝打开才是正确的做法。把两者混为一谈只会美化我们的成绩——本次运行如实的失败数是 9,而不是 25。

真正的局限:9 个无法读取的文件

这些文件全部完好无损——校验和与发布方一致——因此这些是解码器和厂商布局方面的局限,而不是样本损坏。它们会作为回归测试永久保留在语料库中,这样一旦其中某个文件开始能够打开,我们就会知道。

文件 大小 错误 SlideScope 向用户显示的信息
.bif Ventana-1.bif 217 MB ImageLoadError 此切片使用了 OpenSlide 后端无法打开的厂商布局。文件本身并未损坏。
.ims Convallaria_3C_10T_confocal_IMS3.ims 68 MB ImageLoadError 此 .ims 文件不是 SlideScope 支持的基于 HDF5 的 Imaris 格式。较旧的、HDF5 之前的 Imaris 导出文件(有时称为 "Imaris Classic")使用不同的容器,目前不受支持。
.ims Convallaria_3C_1T_2x2grid_confocal_IMS3.ims 23 MB ImageLoadError 此 .ims 文件不是 SlideScope 支持的基于 HDF5 的 Imaris 格式。较旧的、HDF5 之前的 Imaris 导出文件(有时称为 "Imaris Classic")使用不同的容器,目前不受支持。
.ims Convallaria_3C_1T_confocal_IMS3.ims 8 MB ImageLoadError 此 .ims 文件不是 SlideScope 支持的基于 HDF5 的 Imaris 格式。较旧的、HDF5 之前的 Imaris 导出文件(有时称为 "Imaris Classic")使用不同的容器,目前不受支持。
.ims Convallaria_3C_3T_2x2grid_confocal_IMS3.ims 66 MB ImageLoadError 此 .ims 文件不是 SlideScope 支持的基于 HDF5 的 Imaris 格式。较旧的、HDF5 之前的 Imaris 导出文件(有时称为 "Imaris Classic")使用不同的容器,目前不受支持。
.ims Convallaria_3C_3T_35Z_confocal_deconvolved_IMS3.ims 661 MB ImageLoadError 此 .ims 文件不是 SlideScope 支持的基于 HDF5 的 Imaris 格式。较旧的、HDF5 之前的 Imaris 导出文件(有时称为 "Imaris Classic")使用不同的容器,目前不受支持。
.ims TransFactors_2C_SRRF_IMS3.ims 26 MB ImageLoadError 此 .ims 文件不是 SlideScope 支持的基于 HDF5 的 Imaris 格式。较旧的、HDF5 之前的 Imaris 导出文件(有时称为 "Imaris Classic")使用不同的容器,目前不受支持。
.scn Leica-Fluorescence-1.scn 21 MB ImageLoadError 此切片使用了 OpenSlide 后端无法打开的厂商布局。文件本身并未损坏。
.scn Leica-3.scn 2.8 GB ImageLoadError 此切片使用了 OpenSlide 后端无法打开的厂商布局。文件本身并未损坏。

规律在于厂商布局,而非成像模态。荧光 NDPI 和荧光 MIRAX 都能正常打开;被后端拒绝的是特定的结构变体——没有可识别主图像的 SCN、带有意外方向属性的 BIF、HDF5 之前的 "Imaris Classic" 容器。每条提示信息都会指明原因,而不是称文件已损坏,因为在所有这些情况下,文件本身没有问题,是我们做不到。

并非失败:16 个不含图像的对象

DICOM 既是图像格式,也是文档格式。DICOMDIR 是光盘的索引;呈现状态(presentation state)记录了某人当时如何为一项检查调窗;其他对象则保存报告或测量结果。它们都不含像素。查看器即使打开它们也没有东西可显示,因此 SlideScope 会拒绝打开并给出说明——这是正确的行为,我们将其单独计数,这样它就不会虚增任何一栏的数字。

完整列出名称,没有任何内容隐藏在类别之后:DICOMDIR、PS_0026、PS_0108、PS_0128、PS_0154、PS_0181、XX_0027、XX_0109、XX_0155、XX_0182、XX_0183。

SlideScope 打开了文件却显示了错误内容的情况

这是最重要的失败模式,也是格式支持表从不承认的一种,所以下面是我们的案例。

一个多重标记的 Akoya .qptiff 扫描——Vectra 七色参考文件——打开时没有任何错误。该文件包含五个全分辨率单通道荧光页面(DAPI、FITC、CY3、Texas Red、CY5),尺寸为 34,560 × 24,960,共 33 页,这一点已用 tifffile 独立确认。SlideScope 把所有 .qptiff 都交给其 OpenSlide 后端处理,而那是一个明场读取器,因此它只报告了一个通道并返回了一个 RGB 切面。荧光通道无法访问,通道控件也无可调节。

没有任何警告。同一语料库中的明场 H&E QPTIFF 扫描都能完美打开,这恰恰是问题一直未被察觉的原因。

已在 SlideScope 1.8.48(2026 年 9 月 18 日)中修复:现在按文件而不是按扩展名选择后端。多重标记扫描交给能返回全部五个通道的读取器;明场 QPTIFF 仍使用 OpenSlide 及其全分辨率分块。我们如实说明其中的取舍:多重标记 QPTIFF 以降低的分辨率显示,文件详情面板也会注明这一点。本页的运行结果已反映该修复——QPTIFF 一行列出了两个加载器和五个通道。

本次运行证明的是能够打开。像素是否正确是另一个问题,我们会单独测试:第二轮扫描会通过底层库解码相同的平面,并与加载器返回的结果进行比较。QPTIFF 的问题正是这样发现的。

SlideScope 拒绝打开的文件

SlideScope 没有通用的兜底读取器,而查看器如何处理它本不支持的文件,与它如何处理支持的文件同样重要。我们从参考语料库中为每种不支持的扩展名各取最小的真实文件——共 93 个——逐一交给正式发布的加载器工厂处理。

93 个文件全部被拒绝,并给出了清晰的提示。没有一个崩溃。没有一个被打开一半、看似图像实则不是。列表中包括人们很可能会尝试打开的格式——.jpg、.lof、.nii、.oib、.oir、.png、.psd、.raw、.vsi——在本次运行时,其中包括 .png 和 .jpg,它们被拒绝并给出提示,而不是被猜测着打开。

自本次运行以来:SlideScope 1.10.0(2026 年 10 月 16 日)新增支持 18 种格式,包括此处被拒绝的几种:Olympus .vsi、.oib 和 .oir,Leica .lof 和 .xlef,Hamamatsu .ndpis,以及 PNG、JPEG 和其他常见图像。本页的数字是 9 月 18 日运行的实测结果;1.10.0 中新增的格式不在其中。SlideScope 1.20.0 又能打开本次运行未测试的五种格式:Philips .isyntax、KFBio .kfb、ICS/IDS、Gatan .dm3 和 .dm4,以及 Olympus .sis。最新列表请参阅文件兼容性参考。

这项基准测试不能告诉您什么

  • 有两种格式完全没有真实文件覆盖。目前没有公开的 .vmu 或 .svslide 样本——OpenSlide 两者都没有公布——因此这些加载器只经过合成边界用例的测试。我们不声称已对它们进行过测试支持。
  • 这不是速度基准测试。首个像素出现的时间取决于您的磁盘,而这些运行都在本地进行。
  • 除上文所述的像素比较扫描外,这不是准确性审计,也不是临床验证。SlideScope 用于科研、教育和审阅——不用于诊断。
  • 这是一份快照。日期为 2026-09-18,针对当天的当前版本。解码器升级可能使这些数字上升,也可能下降。

关于这项基准测试的问题

SlideScope 实际能打开哪些显微镜和全切片格式?

十八种文件扩展名:.svs、.ndpi、.mrxs、.scn、.bif、.vms、.vmu、.svslide、.qptiff、.avs、.czi、.nd2、.lif、.ims、.dcm、.dicom、.tif 和 .tiff。没有通用的兜底读取器——列表之外的任何文件都会被拒绝并给出简明提示,而不是被勉强打开。

这项基准测试是独立的吗?

不是。这是 SlideScope 发布的关于 SlideScope 的测试,因此请将其视为厂商自测,而非第三方审计。我们无法提供独立性,但可以提供可核查性:语料库是公开的,运行脚本在我们公开的脚本目录中,原始结果文件在本页有链接,失败案例与成功案例列出得同样详细。

为什么有些文件会失败?

几乎都是因为厂商写入了底层开源后端无法读取的布局——例如 OpenSlide 对一个荧光 SCN 报告 "Can't find main image"。这些是上游的局限,我们选择公开而不是隐藏。失败的文件完好无损:它们的校验和与发布方的一致。

能打开文件就意味着图像正确吗?

单凭这一点不能,所以我们两方面都测试。本次运行证明的是能够打开;像素是否正确则由 sweep_format_reference.py 单独证明,它通过底层库解码相同的平面,并与 SlideScope 渲染的结果进行比较。有一个已知案例——一个多重标记的 Akoya QPTIFF——打开时没有报错,却一直显示错误的内容,直到 SlideScope 1.8.48 修复了它。本页记录了这一案例。

我可以复现这项测试吗?

可以。Open Microscopy Environment 参考语料库可公开下载,厂商样本来自 OpenSlide 以及各格式库自带的测试数据,运行脚本随 SlideScope 桌面端代码仓库提供。本页所有表格背后的原始 JSON 都已在上方提供链接。

SlideScope 获准用于临床诊断吗?

没有。SlideScope 用于科研、教育和审阅。它不是诊断设备,不得用于做出初级诊断。

唯一算数的测试是您自己的测试

我们的语料库不是您的切片柜。安装 SlideScope,打开那些真正让您头疼的文件;如果其中某个文件失败,请发给我们——本页上的失败案例,正是因为有人这样做了才会出现在这里。

下载 SlideScope