Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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
Python libvips最近邻/双三次深度缩放金字塔创建_Python_Image Processing_Deepzoom_Vips - Fatal编程技术网

Python libvips最近邻/双三次深度缩放金字塔创建

Python libvips最近邻/双三次深度缩放金字塔创建,python,image-processing,deepzoom,vips,Python,Image Processing,Deepzoom,Vips,我正在将我的一些代码从openzoom.py移到Libvips上,但不确定如何指定插值方法,这一点很重要。我至少需要能够在一种情况下使用双三次/双线性,在另一种情况下使用最近邻 我的旧代码如下: creator = deepzoom.ImageCreator(tile_size=128, tile_overlap=2, tile_format="png", image_quality=0.8, resize_filt

我正在将我的一些代码从openzoom.py移到Libvips上,但不确定如何指定插值方法,这一点很重要。我至少需要能够在一种情况下使用双三次/双线性,在另一种情况下使用最近邻

我的旧代码如下:

creator = deepzoom.ImageCreator(tile_size=128, tile_overlap=2, tile_format="png",
                                        image_quality=0.8, resize_filter="nearest")
creator.create(sourceFile, destFile)
目前,使用pyvips,我有以下几点

image = pyvips.Image.new_from_file(sourceFile)
image.dzsave(destFile, tile_size=128, overlap=2,
                     suffix='.png[Q=80]')
任何帮助都将不胜感激:)

默认情况下,将平均每个2x2像素块,这相当于双线性

有时,例如,对于像素值表示标签而不是强度的图像,需要进行非插值缩小。对于这些情况,您可以使用
region\u shrink
参数选择
中值
模式
,这两种模式都将保留标签值

我将使用:

image = pyvips.Image.new_from_file(sourceFile, access='sequential')
image.dzsave(destFile,
             overlap=1,
             tile_size=126,
             region_shrink='mode',
             suffix='.png')
不要忘记设置
access
提示。对于不支持随机访问的大型图像,它将极大地提高速度和内存行为

PNG Q编号设置输出调色板图像时的量化质量?libvips默认为PNG标准6

确实要重叠=2?deepzoom标准是重叠1。重叠1表示在每个分片的边缘周围有一个额外的像素,因此图像中心的分片将与相邻的分片在每个边缘上共享两个像素。设置
overlap=2
意味着您将有四个像素重叠,令人困惑

同样地,
tile\u size=128
意味着您的大多数tile将为132x132像素。这对PNG来说并不重要,但JPG在轴上的倍数为8时效果最好。我会将
tile_size
设置为(128-2*overlap),默认情况下deepzoom就是这样做的


git master libvips还添加了
max
min
最近的
(始终选择左上方的像素)。分支机构有
lanczos3
,但由于各种原因从未合并。

谢谢!这正是我需要做的,我感谢你抓住了我的其他错误:)如果你正在寻找的话,请考虑接受约翰的答案(点击滴答声/勾选)。希望你也能投上一票。