问题标签 [bicubic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
609 浏览

c# - 双三次插值 - 正确分离

我正在尝试使用三次样条和插值的广义公式来实现双三次图像插值。
我能够通过使用所有 16 个周围像素来实现这一点,并根据这 16 个函数值计算插值系数。但由于插值在定义上是可分离的,我尝试实现一个使用两个一维插值的版本,以实现双三次插值。对于广义插值公式,我使用例如http://bigwww.epfl.ch/publications/thevenaz9901.pdf第 3 章,对于一维插值,我使用这背后的想法:http: //www.vision-systems.com /articles/print/volume-12/issue-10/departments/wilsons-websites/understanding-image-interpolation-techniques.html
我的系数是通过反转 4x4 矩阵来计算的,如https://en.wikipedia.org/wiki/Spline_interpolation#Example

插值由三个函数组成。
插值函数本身(phi):

从 4 个函数值计算 4 个系数:

以及从较小的源图像对整个图像进行插值:

对于这样的图像(15x15px): 源图像 15x15px

结果看起来像这样(缩放到 80x80px): 双三次样条插值分离 80x80

相反,如果我一次计算所有 16 个系数(80x80px),结果如下所示: 双三次样条插值完成

我现在的问题是:分离是如何正确完成的?还是我完全遗漏了一些东西,我只能分离插值函数(phi)而不是系数的计算?

0 投票
0 回答
58 浏览

c++ - 双三次插值函数做错误的索引(参考负索引)

我最近正在研究大学学期项目的双三次插值。

我在网上查找了一些其他代码并运行它。

但是“每个”代码都有相同的索引问题。

我想这一定是我的错,但我找不到任何问题。

如果您仔细查看 bicubicresize 代码,在第一个循环中,变量“z”将为“-1”。

这将导致在图像中引用负索引;记不清。这在运行时显示内存错误。

我也找到了其他代码,但它们也使用相同类型的索引。

我怎么了?或索引?我现在很困惑。

请帮帮我!

0 投票
2 回答
3340 浏览

java - Java 2D 数组双三次插值

我最近一直在玩双三次插值,因为我想根据 Minecraft 中的真实高度图生成地球。我使用插值的原因是因为我想让世界有更多的细节。经过大量的研究和大量的试验和错误,我决定来这里问。:)

由于内存有限,我无法在启动时缩放图像并保持加载,我必须动态进行插值。

我似乎已经让三次插值工作,如下所示: 插值的可视化 但是,我无法让双三次插值工作。出于测试目的,我使用了一个小图像,并将其缩放 4。这就是代码的作用:输入 -> 输出

这是我当前的代码:

谢谢您的帮助 :)

0 投票
2 回答
6620 浏览

c - C中的双三次插值

我试图处理c 中的双三次图像插值。因此,我构建了这个小脚本。

1.“resize_image”功能:

2.“sample_bicubic”函数

3.“插值助手”

我已经上传了完整的代码以及这里的所有东西。

执行此代码没有语法错误。

但是输出图像让我感到困惑。

输入图像(21x20Pixel):

输入图像:21x20像素

此输入图像按 2 (42x40Pixel) 放大:

输出图像:42x40像素

插值在某些点上似乎工作正常,但图像看起来像像素被移动了。

有人可以告诉我我做错了什么吗?该脚本是在以下人员的帮助下制作的: http ://blog.demofox.org/2015/08/15/resizing-images-with-bicubic-interpolation/

多谢你们!

(请不要考虑这段代码的效率......我知道它太棒了)

0 投票
1 回答
238 浏览

matlab - MATLAB 如何使用双三次插值像素?

我不知道 MATLAB 使用双三次方法对像素进行插值。

MATLAB 中双三次插值像素不同于 RG Keys [1] 实现的双三次插值像素。

您能否解释如何在 MATLAB 中使用双三次方法而不是 [1] 中的双三次方法来插值像素。然后,解释为什么它们不同。

例如

MATLAB:

[1]:

像素是通过[1 2 3 4]使用 [1] 中的双三次方法对像素进行插值获得的。

谢谢。

[1] 数字图像处理的三次卷积插值”,IEEE Trans on ASSP,第 ASSP-29 卷,第 6 期,1981 年 12 月

0 投票
1 回答
2270 浏览

matlab - matlab中二维矩阵的双线性和双三次插值

我正在尝试对存储在文本文件中的数据集应用双线性和双三次插值。这些文本文件位于一个文件夹中,名为output_00.text 到 output_23.text。每个文本文件由三列组成。第一个是纬度,第二个是经度,第三列是这个纬度和经度(地球上的位置)的温度值。

温度列包含-9999.000 作为非数字或 NaN 值。此 NaN 值出现在每个文件中的随机行中。

我想用双线性/双三次插值技术对这些 NaN 值进行插值。此代码将读取每个文本文件并使用双线性方法对其进行插值,并使用 method_00.text 保存它。

我的一个文本文件看起来像这样

在谷歌上,我发现了一个在图像或矩阵上进行双线性插值的工具。暂时可以根据我的要求修改此代码。但是如何?

. 这个工具的链接在这里http://www.mathworks.com/matlabcentral/fileexchange/43533-bilinear-interpolation-of-an-image-or-matrix

0 投票
1 回答
874 浏览

opencv - 使用双三次插值填充矩阵的边界

我有一个大小矩阵28x22。第一行、最后两行、第一列和最后两列(以红色和绿色标记)为空。这些列和行应该由双三次插值填充。

我在 SO 和互联网上阅读了几篇关于双三次插值的帖子,但不幸的是,我无法理解它。此外,我读到双三次插值需要知道需要插值的像素周围的 4x4 网格。但是,由于行和列处于边界,所以我没有4 x 4围绕它们的网格。

图片

0 投票
2 回答
4169 浏览

c++ - 使用双三次方法的 C++ 图像插值

我只是想通过 BiCubic 插值来平滑图像。我得到了一些用于插入 RGB 图像的代码。我已更改代码以适用于灰度图像。但结果我只得到了全黑的图像。考虑的输入和输出图像大小相同。代码粘贴在下面。请帮我。提前致谢。

0 投票
3 回答
1195 浏览

algorithm - 填充二维数组的空白

我有一个人口稀少的数组,如下所示。有没有一种算法可以用线性有意义的值填充所有空白?IE。从周围的原始值推导出来。

我看过双线性插值和双三次插值,但还有其他的吗?

例如,我希望 xxx 在 40 附近,而 yyy 在 50 附近。然而 zzz 可能具有更随机的值。但请注意:我想填充每个空白空间,而不仅仅是 xxx、yyy 和 zzz。并且能够对任何人口稀少的数组这样做。

这样的算法存在吗?

0 投票
5 回答
6578 浏览

android - Android:使用比双线性更好的重采样算法调整位图大小(如 Lanczos3)

是否有任何方法或外部库可以使用Lanczos(理想情况下)或至少双三次算法来调整图像大小。在安卓下?(当然越快越好,但质量是优先的,处理时间是次要的)

到目前为止,我所拥有的一切都是这样的:

但是它使用双线性滤波器,输出质量很差。特别是如果您想保留细节(如细线或可读文本)。

有很多很好的 Java 库,例如这里讨论的: Java - resize image without loss quality

但是它总是依赖于 Java awt 类java.awt.image.BufferedImage,所以它不能在 Android 中使用。

有没有办法更改方法中的默认(双线性)过滤器Bitmap.createScaledBitmap()或像Morten Nobel 的库这样的库,它能够与android.graphics.Bitmap类一起工作(或使用一些原始表示,正如评论中的@Tron 所指出的那样)?