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 processing 使用VIPS命令行将图像切分为平铺_Image Processing_Imagemagick - Fatal编程技术网

Image processing 使用VIPS命令行将图像切分为平铺

Image processing 使用VIPS命令行将图像切分为平铺,image-processing,imagemagick,Image Processing,Imagemagick,我有一个大的Tiff图像,我想把它切成512x512块,然后写入磁盘 过去我使用ImageMagick的方式如下: convert -crop 512x512 +repage image_in.tif image_out_%d.tif 但最近,这一直不起作用,进程内存不足,等等 VIP中是否有类似的命令?我知道有一个CLI,但我在文档中找不到一个示例或有用的解释,我仍在试图弄清楚nip2 GUI的东西。感谢您的帮助。:) 我遇到了同样的问题。VIP似乎没有像上面imagemagick中那样的内

我有一个大的Tiff图像,我想把它切成512x512块,然后写入磁盘

过去我使用ImageMagick的方式如下:

convert -crop 512x512 +repage image_in.tif image_out_%d.tif
但最近,这一直不起作用,进程内存不足,等等


VIP中是否有类似的命令?我知道有一个CLI,但我在文档中找不到一个示例或有用的解释,我仍在试图弄清楚nip2 GUI的东西。感谢您的帮助。:)

我遇到了同样的问题。VIP似乎没有像上面imagemagick中那样的内置命令,但您可以通过一些脚本(Python代码片段)来实现这一点:

但是,您将无法获得与imagemagick裁剪相同的速度…

有一个操作符,可以非常快速地为您执行此操作。尝试:

$ vips dzsave wtc.tif outdir --depth one --tile-size 512 --overlap 0 --suffix .tif
这是DeepZoom writer制作的tif瓷砖深度1金字塔。在
outdir\u文件/0
中查找输出分幅。有一个关于如何使用dzsave的讨论

对我来说,这比即时通讯快得多:

$ time convert -crop 512x512 +repage huge.tif x/image_out_%d.tif
real    0m5.623s
user    0m2.060s
sys     0m2.148s
$ time vips dzsave huge.tif x --depth one --tile-size 512 --overlap 0 --suffix .tif
real    0m1.643s
user    0m1.668s
sys     0m1.000s

其中
巨大.tif
是10000 x 10000像素的未压缩RGB图像。此外,它只需少量内存即可处理任意大小的图像

另一方面,我发现在本例中,基本graphicsmagick比imagemagick工作得好得多,如果您随意使用memlimit和文件写入选项(对不起,我不记得我现在最终使用了哪个选项)。是否可以给瓷砖自定义名称,例如包括行和列或x/y坐标?我在文档中没有看到这样的选项,但是libvips对我来说是新的。在本例中,tile被命名为
column_row.tif
,这就是您的意思吗?是的,谢谢,这对我来说很有用。我的问题是,能否像在ImageMagick中一样在VIP中自定义互动程序名称。例如,是否可以包含X/Y坐标而不是行/列?我还想知道重叠区域会发生什么,在重叠区域中,一些程序会求和或“羽化”像素。我希望VIP也不会这样做,也就是说,它只是重复原始值。dzsave输出deepzoom/google maps/zoomify/iiif金字塔,因此您可以从这些命名约定中进行选择。重叠只是平铺之间共享的像素,因此,例如,对于重叠1,平铺0_0中最右边的两列与平铺1_0中最左边的两列相同。如果需要不重叠的平铺,请将重叠设置为0。感谢您的澄清。这似乎是一个非常有用的图书馆。
$ time convert -crop 512x512 +repage huge.tif x/image_out_%d.tif
real    0m5.623s
user    0m2.060s
sys     0m2.148s
$ time vips dzsave huge.tif x --depth one --tile-size 512 --overlap 0 --suffix .tif
real    0m1.643s
user    0m1.668s
sys     0m1.000s