libvips从Ex40中提取NDPI区域而不是从地图中提取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libvips从Ex40中提取NDPI区域而不是从地图中提取相关的知识,希望对你有一定的参考价值。
我使用libvips来获取.ndpi图像的金字塔。
通过this answer并搜索documentation我发现了这个命令
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
- myimage_x0.15625_z0.tif
- myimage_x0.625_z0.tif
- myimage_x10_z0.tif
- myimage_x2.5_z0.tif
- myimage_x40_z0.tif
当我需要myimage_macro.tif
时,vips正在服用myimage_x40_z0.tif
应该有一个像level这样的参数来从我想要的OpenSlide(ndpi)中的图像中选择。
有人问。为什么不提取tif然后运行vips?
好吧,因为vips告诉我这个:
openslide2vips: opening slide: No such value: directory 0, tag 278
这意味着使用ndpisplit提取tif以某种方式不保存元数据以允许vips识别图像
所以我有点麻烦。我有巨大的图像,我需要提取一个稍微少一点的东西,然后有它的金字塔。
请帮助我,现在我基本上编写了我自己的编码并且它有效,但它非常慢。
我写这个作为答案,虽然这不是一个真正的答案。它似乎只是一个评论太长了。
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命令行工具,它们可能提供更多选项。
以上是关于libvips从Ex40中提取NDPI区域而不是从地图中提取的主要内容,如果未能解决你的问题,请参考以下文章
对象 Promise 显示而不是从 API 调用中提取的数据