繁体   English   中英

PIL 双三次插值法

PIL Bicubic Interpolation wi

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

所以,我有一个形状的 ndarray: (28, 28, 1)并且我想使用双三次插值将它放大到(33, 33, 1)
以下是我在网上搜索得到的:

import numpy as np
from PIL import Image as pil_image

...

img = np.array(pil_image.fromarray(img).resize(intermediate_dim, pil_image.BICUBIC))
# print(img.shape) -> (28, 28, 1), print(intermediate_dim) -> (33, 33)

但我不断收到错误消息:

回溯(最近一次调用最后一次):
文件“filters.py”,第 256 行,在
可视化层(mnist,LAYER_NAME)
文件“filters.py”,第 232 行,在visualize_layer 中
img_loss = _generate_filter_image(input_img, output_layer.output, f)
文件“filters.py”,第 161 行,在 _generate_filter_image img = np.array(pil_image.fromarray(img).resize(intermediate_dim, pil_image.BICUBIC))
文件“BlaBlaBla\\Python37\\site-packages\\PIL\\Image.py”,第 2682 行,在 fromarray 中
raise TypeError("无法处理此数据类型:%s, %s" % typekey)
类型错误:无法处理此数据类型:(1, 1, 1), |u1

看到这一点后,我尝试使用img.astype(np.uint8)但没有任何帮助。
我究竟做错了什么?

PS 我确定该数组包含合法值(来自 [0, 255] 的整数)

1 个回复

您尝试从中创建 PIL 图像的数组的形状为:

(28,28,1)

这不是 PIL 喜欢的形状。 它喜欢:

(M,N) for greyscale images
(M,N,3) for RGB images
(M,N,4) for RGBA images

因此,您可以使用以下命令选择最后一个未使用维度的第一个通道:

img = np.array(pil_image.fromarray(img[...,0]).resize(intermediate_dim, pil_image.BICUBIC))
1 双三次插值?

我浏览了互联网,就双三次插值而言,我找不到一个简单的方程式。 维基百科关于这个主题的页面不是很有帮助,那么有没有什么简单的方法可以学习双三次插值的工作原理以及如何实现它? 我正在使用它来生成柏林噪声,但使用双线性插值是满足我的需求的方式(我已经尝试过了)。 如果有人可以通过一个好的网站或只是一个答 ...

2 图像中的双三次插值误差

我已经实现了双三次插值,并参考了这些幻灯片 。 幻灯片编号118给出了计算双三次插值的公式。 我以保持P(dr-m)和P(n-dc)相同的方式实现了代码,如下所示: 其中max函数由幻灯片中定义的Q(X)定义。 但是当我运行代码时,我得到以下图像: 。 但是, ...

3 双三次插值图像重采样

我的网站上有一个900像素宽的徽标标题图片,该图片适合一个容器,该容器将其缩小以适合标题栏; 在高分辨率移动设备上,创建适合标题栏的图像的原因看起来很糟糕。 我发现我的图片在chrome中看起来绝对不错,但是在IE10中,它看起来令人震惊。 你自己看; www.cmvisual.co ...

5 双三次插值的概念

我正在尝试在如下所示的8 * 8矩阵(图像)上进行双三次插值。 我使用下面的matlab代码,得到了输出 但是,即使在使用谷歌搜索之后,我也无法手动进行操作。 任何人都可以使用此示例(仅适用于几个像素)来帮助我理解这个想法吗? ...

6 双三次插值 Python

我开发了双三次插值,用于向一些使用 Python 编程语言的本科生进行演示。 该方法如维基百科中所述,代码工作正常,除了我得到的结果与使用 scipy 库时获得的结果略有不同。 插值代码显示在函数bicubic_interpolation 。 在函数bicubic_interpolation ...

7 双立方插值 - 正确分离

我试图使用三次样条和插值的广义公式实现双立方图像插值。 我能够通过使用所有16​​个周围像素来实现这一点,并从这16个函数值计算插值系数。 但由于插值可以通过定义分离,我试图实现一个使用两个1-D插值的版本,以实现双三次插值。 对于广义插值公式,我使用例如http://bigwww.ep ...

8 双三次插值曲面

面对用三次样条进行曲面插值的问题,挖了整个Internet,但是除了正方形[0,1] x [[0,1]中的普通插值没有找到任何东西外,我需要对值进行插值在任意区域内(无论是16点还是4,并带有所有导数的指示,等等),我举一个例子:我们取满足椭圆抛物面方程的点:x = {100..102},y = ...

9 Modelica中的双立方插值

我有一组关于不规则网格的数据。 我有perfrom插值来找到f(x,y)。 我已经在维基百科的算法帮助下实现了双线性插值。 但是,它并不准确。 我想实现双立方插值或双立方样条插值。 我找到了一个双立方插值算法,但我必须找到导数fx,fy和fxy。 它使我的代码更复杂。 是否有任何模 ...

10 使用openCV的双三次插值

我想使用双三次插值来执行图像调整大小。 但是,我的输出图像new_img看起来与原始加载的图像img完全相同。 另外,当我发现new_img的宽度和高度时,它的尺寸与原始图像的尺寸相同。 我以为目标图像应该已调整大小? 这是我的代码。 有人可以看看我做的事情是否不正确吗? 先感谢您。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM