Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在C++中从SV格式文件中提取一个完整的图像 我试图从C++中的SV文件中提取一个完整的图像。_Image_Image Processing_Tiff_Libtiff - Fatal编程技术网

Image 在C++中从SV格式文件中提取一个完整的图像 我试图从C++中的SV文件中提取一个完整的图像。

Image 在C++中从SV格式文件中提取一个完整的图像 我试图从C++中的SV文件中提取一个完整的图像。,image,image-processing,tiff,libtiff,Image,Image Processing,Tiff,Libtiff,我看到了他的解释。 它说SVS格式是单文件金字塔平铺TIFF 所以我试着像对待TIFF图像一样提取一个全比例图像:我从SVS文件中读取所有IFD,但没有包含指向全比例图像地址的273标记 这就是为什么我现在有点困惑,SVS格式在文件中没有一个完整的比例图像 我在一个SVS文件中发现了一个未定义的私有标记,编号为34675。这个标签是用于全比例图像的吗? 或者有没有合适的方法提取它?Aperio SVS是一种平铺格式。金字塔的所有级别都是平铺图像。底层是第一个TIFF目录。显示如何读取平铺图像 简

我看到了他的解释。 它说SVS格式是单文件金字塔平铺TIFF

所以我试着像对待TIFF图像一样提取一个全比例图像:我从SVS文件中读取所有IFD,但没有包含指向全比例图像地址的273标记

这就是为什么我现在有点困惑,SVS格式在文件中没有一个完整的比例图像

我在一个SVS文件中发现了一个未定义的私有标记,编号为34675。这个标签是用于全比例图像的吗?
或者有没有合适的方法提取它?

Aperio SVS是一种平铺格式。金字塔的所有级别都是平铺图像。底层是第一个TIFF目录。显示如何读取平铺图像

简言之,您需要查找标记324 TIFFTAG_tileoffset,以及标记322和323 TIFFTAG_TILEWIDTH、TIFFTAG_TILELENGTH。我强烈建议您为此使用LibTiff,不要尝试使用自己的LibTiff


SVS文件中的自定义标记包含元数据,包括以微米为单位的像素的物理大小SVS不设置分辨率TIFF标记。

您可以读取缩略图图像这就是您所说的全比例图像吗?作为openslide关联图像

例如,具有由openslide作者编写的方便的openslide绑定:

$ vipsheader -f slide-associated-images CMU-1.svs
label, macro, thumbnail
列出SVS文件中的图像。宏是默认情况下得到的巨大金字塔,缩略图是小的概览,标签是幻灯片标签的快照

按如下方式获取缩略图:

$ vips copy CMU-1.svs[associated=thumbnail] x.jpg
以JPG图像的形式读取

在C++中,你可以写:

VImage thumb = VImage::new_from_file("CMU-1.svs", 
    VImage::option()->set("associated", "thumbnail"));
thumb.write_to_file("x.jpg");

我懂了。谢谢回复@Cris Luengo。所以,没有办法一次提取整个图像,对吗?我必须提取所有瓷砖无论如何,并连接瓷砖,使整个图像。我认为所有tiff文件的第一页都是一幅完整的图像。但svs文件格式并非如此。我理解正确吗?非常感谢。我还想让你告诉我什么是标签34675。一份描述说这是TIFF标签ICC档案。我不明白这是什么意思。@YJJ:你不能在一个函数调用中提取它,但对于条带化的TIFF文件也是如此,你必须读入每个条带,并将它们合成一个图像。使用平铺TIFF,您可以读入每个平铺,并将它们组合成一个图像。SVS文件的第一页是完整的图像基础层,正如您所期望的那样。但任何TIFF文件的每个页面都由一个或多个条带或一个或多个平铺组成。TIFF就是喜欢用这种方式分解像素数据。@YJJ:ICC配置文件描述了如何修改文件中的颜色,使其在显示器上的外观与在物理幻灯片上的相同。为此,您需要将存储在SVS文件中的扫描仪的ICC配置文件与监视器的ICC配置文件相结合。请参见此处:-但如果您正在分析幻灯片,最好忽略ICC配置文件。它只对展示有用。非常感谢您的回答。因此,在第一页上,有完整的图像,但没有单个阵列。全比例图像分为瓷砖或条带。我想知道,所有的svs文件都有瓷砖来组成完整的图像,而不是条带?现在我正在编码从svs文件中提取JPEG2000格式的文件,并将JPEG2000转换为普通JPEG。那么,现在我不需要考虑关于SV文件的条带,只需使用瓦片信息来构成完整的图像?如果你不介意的话,我还想问你,在我把所有的图片都做成全尺寸图像之后,它就是缓冲区数组。是否有正确的方法将缓冲区数组保存为JP2文件格式?