libvips извлекает область NDPI из Ex40, а не из карты

Я использую libvips для получения пирамид изображений .ndpi.

через этот ответ и выполнить поиск в документации. нашел эту команду

vips extract_area myimage.ndpi[level=0] mypyramid.dz 0 0 10000 10000

Который извлекает урожай, начиная с 0 0 и размером 10000 10000, в файл dzi.

Параметр level — это увеличение, 0 — максимальное.

Проблема в том, что внутри ndpi есть следующие изображения:

  • myimage_macro.tif
  • myimage_map.tif
  • мое изображение_x0.15625_z0.tif
  • мое изображение_x0.625_z0.tif
  • мое изображение_x10_z0.tif
  • мое изображение_x2.5_z0.tif
  • myimage_x40_z0.tif

А випс берет myimage_macro.tif, а мне нужно myimage_x40_z0.tif

Должен быть такой параметр, как уровень, чтобы выбрать, какое из изображений внутри OpenSlide (ndpi) я хочу.

Некоторые люди спрашивают. Почему бы не распаковать tif и не запустить vips?

Ну, потому что vips говорит мне это:

openslide2vips: opening slide: No such value: directory 0, tag 278

Это означает, что использование ndpisplit для извлечения tif почему-то не сохраняются метаданные, чтобы випы могли распознать изображение

Так что я в немного неприятной ситуации. У меня есть огромные изображения, и мне нужно извлечь немного менее огромный кусок, а затем получить его пирамиду.

Пожалуйста, помогите мне, прямо сейчас я в основном кодирую все это сам, и это работает, но ОЧЕНЬ медленно.


person lesolorzanov    schedule 21.11.2018    source источник


Ответы (1)


Я написал это как ответ, хотя на самом деле это не ответ. Это казалось слишком длинным для простого комментария.

Операция libvips openslideload позволяет выбрать ассоциированное изображение для загрузки. Вы можете получить список связанных изображений из тега метаданных slide-associated-images. Например:

$ vipsheader -f slide-associated-images 2013_09_20_29.ndpi 
macro
$ vipsheader -f slide-associated-images CMU-1.svs
label, macro, thumbnail

Затем вы выбираете связанное изображение, возможно:

$ vips crop CMU-1.svs[associated=label] x.jpg 10 10 100 100

Чтобы получить небольшую часть этикетки.

Итак... проверьте, какие связанные изображения открываются в отчетах для вашего слайда. Если вы можете получить тот, который вам нужен, выберите его с параметром associated. Если нужного вам изображения нет в списке, я бы связался с проектом openslide, так как им нужно будет добавить поддержку.

Вы также можете проверить инструменты командной строки openslide, они могут предложить больше возможностей.

person jcupitt    schedule 22.11.2018
comment
О, это выглядит фантастически, это было связанное ключевое слово, которое я искал. Я попробую. Тем временем я уже сделал скрипт на Python, чтобы сделать это для меня, но мой DZI выглядит немного странно в меньших разрешениях, ха-ха - person lesolorzanov; 22.11.2018
comment
О нет, к сожалению, это не сработало. Я пробовал vipsheader myimage.ndpi myimage.ndpi: 226176x90880 uchar, 4 bands, rgb, openslideload и vipsheader -f slide-associated-images : macro, потом vips crop myimage.ndpi[associated=macro] macrofromheader.dz 0 0 10000 10000, и там написано: extract_area: неверная область извлечения - person lesolorzanov; 22.11.2018
comment
Также для урожая, поскольку урожай является псевдонимом extract_area. - person lesolorzanov; 22.11.2018
comment
Итак, теперь что-то сработало, и я не понимаю, почему, но это хорошо. Спасибо за помощь! В конце концов я запустил vips extract_area myimage.ndpi[level=0] mypyramid.dz[tile-size=1024] 0 0 20000 20000 (то же самое, что и в моем вопросе), но теперь он правильно загружает цвета. Единственная разница заключается в свойстве размера плитки для дзи. Интересно, это ошибка, потому что сначала это дало мне только странное изображение в оттенках серого. - person lesolorzanov; 22.11.2018
comment
Ох как странно. level=0 по умолчанию, вам это не нужно. Если вы можете найти маленькое изображение, демонстрирующее проблему, откройте задачу в системе отслеживания ошибок libvips github. .com/libvips/libvips/issues/new - person jcupitt; 22.11.2018