Skip to content

深度缩放与十亿像素图像

以 DZI 与 IIIF Image API 3.0 两种协议提供同一份瓦片金字塔,并可在源图完整分辨率下绘制画笔掩码,不存在纹理尺寸上限。

对于大到无法作为单个文件发送给浏览器的图像——航拍测绘、拼接的显微镜图像、扫描地图——依然可以用框、多边形与掩码进行标注,并且在任意放大倍率下都能工作。 Potato 会提供一份瓦片金字塔,并把标注画布叠加在其上。

yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: structures
    description: "Mark every structure."
    source_field: image
    viewer: deepzoom          # 默认值为 `fabric`
    tools: [bbox, polygon, brush, eraser]
    labels:
      - {name: building, color: "#c0392b"}

瓦片路由从 media_directory 读取数据;你的数据文件中的路径相对于该目录。

可运行示例:examples/image/deep-zoom/

两种协议,同一份金字塔

同一份瓦片金字塔会同时以 DZIIIIF Image API 3.0 的形式提供。IIIF 对文化遗产与数字人文工作尤为重要,因为相关机构既有的查看器与引用规范本就以它为前提。渲染由 OpenSeadragon 负责,并与其他所有资源一样随源码本地提供。

完整分辨率下的掩码

画笔掩码可在瓦片化图像上以源图的完整分辨率工作,因为掩码缓冲区索引的是图像像素而非 GPU 纹理。这里不存在会撞上的纹理尺寸上限。

这一点值得谨慎表述,因为该说法的早期版本是错的,后来做了更正。其他平台同样支持在瓦片化图像上绘制掩码,V7 就是其中之一。这里特别之处在于缓冲区的设计,而不是"有没有这项能力"。

这些缓冲区是稀疏且分块的,这正是它在成本上可行的原因:在一张 1200 万像素的图像上标注十个类别,占用从约 458 MB 降到约 46 MB,并且掩码数据不再随图像面积增长,无论分辨率如何都稳定在 16 KB。

Potato 不适合的场景

具体到数字病理,QuPath(桌面端、开源、该领域的事实标准)与 Cytomine(网页端、开源、支持多用户盲标)都是为此专门打造的,而 Potato 不读取 SVS、DICOM 或 NIfTI。当你的图像很大但并非临床专用格式,或者你需要在其之上叠加 Potato 的一致性与工作流能力时,再考虑用 Potato。

相关内容