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          # the default is `fabric`
    tools: [bbox, polygon, brush, eraser]
    labels:
      - {name: building, color: "#c0392b"}

타일 라우트가 읽어 들이는 곳이 media_directory이며, 데이터 파일의 경로는 그 기준의 상대 경로입니다.

동작하는 예시: examples/image/deep-zoom/.

프로토콜 둘, 피라미드 하나

같은 타일 피라미드를 DZIIIIF Image API 3.0 양쪽으로 제공합니다. IIIF가 중요한 곳은 문화유산과 디지털 인문학 작업으로, 그런 기관의 기존 뷰어와 인용 관행이 이미 IIIF를 전제하고 있기 때문입니다. 렌더링은 OpenSeadragon이 맡으며, 다른 모든 자산과 마찬가지로 로컬에 포함되어 있습니다.

전체 해상도의 마스크

타일 이미지에서도 브러시 마스크는 원본의 전체 해상도로 동작합니다. 마스크 버퍼가 GPU 텍스처가 아니라 이미지 픽셀을 인덱싱하기 때문입니다. 부딪힐 텍스처 크기 상한이 없습니다.

이 부분은 조심스럽게 말할 값어치가 있습니다. 이 주장의 이전 판이 틀렸고 정정되었기 때문입니다. 타일 이미지에 마스크를 다는 것은 다른 플랫폼에서도 됩니다. V7도 그중 하나입니다. 여기서 고유한 것은 기능이 아니라 버퍼 설계입니다.

버퍼는 성기고 청크 단위로 나뉘어 있으며, 그 덕분에 이 방식이 감당 가능해집니다. 12메가픽셀 이미지에 10개 클래스가 약 458MB에서 약 46MB로 줄었고, 마스크 데이터가 이미지 면적에 따라 늘어나는 일이 아예 사라져 해상도와 무관하게 16KB에 머물게 되었습니다.

Potato가 맞는 도구가 아닌 경우

디지털 병리에 한정하면 QuPath(데스크톱, 오픈 소스, 이 분야의 표준)와 Cytomine(웹, 오픈 소스, 블라인드 주석을 지원하는 다중 사용자)이 그 목적에 맞게 만들어졌고, Potato는 SVS, DICOM, NIfTI를 읽지 않습니다. 여기서 Potato를 쓸 자리는 이미지가 크지만 임상 형식은 아닐 때, 또는 그 위에 일치도와 작업 흐름 계층이 필요할 때입니다.

관련 문서