问题标签 [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 回答
409 浏览

formula - 如何计算 C2 连续双三次 Bezier 曲面片的内部控制点

我正在尝试计算平滑连接管的双三次贝塞尔曲面的控制点。此示例为相应的 Bezier 补丁提供 16 个控制点(在 OpenSCAD 的语法中):

给定角点;沿边缘的控制点(以红色显示)是根据具有明显方向的切线计算得出的: 带有控制点和一些法线向量的贝塞尔补丁 可以在平面 z=0、y=0、x=4 和 x=y 上镜像补丁以生成更大的复合表面,即C1 沿所有四个接缝连续。该表面在平面 z=0、y=0 和 x=4 中的接缝处也是 C2 连续的,但在平面 x=y 中的接缝处不连续(参见 V 形黄色法线向量):

带有控制点(红色)和法线(黄色)的贝塞尔补丁 - 镜像四次

对于所需的 C2 连续性,沿违规接缝的表面法线应与平面 x=y 共面。

是否有可能设置四个内部控制点,以使所有接缝的法线都按需要出现?

如果是这样,应该通过什么公式或算法计算内部控制点以允许完全 C2 连续组合表面?

如果不是这样,生成所需补丁的适当方法是什么?

0 投票
1 回答
63 浏览

c++ - 使用 EasyBMP 的双三次插值无法正常工作

我正在编写一个使用双三次插值的程序,并且我正在使用 EasyBMP,但我遇到了问题。而输入图像是辣椒

我的输出看起来像这样

你注意到我犯的错误了吗?

0 投票
1 回答
659 浏览

matlab - 在 Matlab 中使用 interp2 对特定点进行三次插值

鉴于以下示例,有没有一种方法可以在不生成整个细间距网格的情况下实现双三次插值?:

警告:“立方”方法要求网格具有均匀的间距。由于不满足此条件,因此将方法从“三次”切换为“样条”。

我理解警告的原因。所以希望通过指定特定点来找到解决方案,而不必生成整个等间距的表面(可用的数据不是等间距的)。不一定非要interp2。我将不得不为数百个表面和数百个查询点运行它,因此需要非常快地返回“w”。有任何想法吗?

0 投票
1 回答
244 浏览

c++ - 多次旋转问题

这是我的问题。我必须在双三次曲面上沿圆形轨迹移动圆环。

然而,圆环的垂直轴必须与给定点的表面法线对齐。此外,圆环必须面对它的圆形轨迹。

为了解决这个问题,我采用了法线向量和 Oy 向量,做了一个十字和一个点积来找到我需要的角度和旋转的轴,它可以工作。为了管理第二部分,我获取了圆环的实际坐标,接下来是圆形轨迹上的坐标,制作了一个矢量,并按照前面描述的方法找到了角度和轴,它可以工作。

我的问题是,我必须同时应用两个旋转,但我找不到这样做的方法。我试图以各种可能的方式推送/弹出矩阵,但我找不到摆脱这种方式的方法。所以我回到这个...

有任何想法吗?很抱歉打扰你,我想它一定很简单,但我没有看到。无论顺序如何,第一个轮换总是会干扰下一个轮换。vecortho 是根据表面法线和 Oy 计算的轴矢量。tang 是用我的轨迹向量和 Ox 计算的向量。

0 投票
1 回答
207 浏览

matlab - Matlab中超出网格值的双三次插值

是否可以在网格值之外实现双三次插值?例如:

返回:

0 投票
0 回答
151 浏览

matlab - 图像中的双三次插值误差

我参考这些幻灯片实现了双三次插值。幻灯片编号 118 给出了计算双三次插值的公式。

我以相同的方式实现了我的代码,将 P(dr-m) 和 P(n-dc) 保持为:

其中 max 函数由幻灯片中定义的 Q(X) 定义。

但是当我运行代码时,我得到以下图像:

归一化因子为 1/6 时的图像.

但是当我将归一化因子更改为 1/32 时,我得到:

归一化因子为 1/32

我的原图是这样的:

原始图像

有人可以指出我哪里出错了吗?

代码片段如下:

0 投票
1 回答
1360 浏览

image - 双三次插值 matlab 实现仅适用于灰度图像

我正在尝试在 matlab 中实现图像缩放的双三次插值。问题是它适用于灰度图像,但是,对于彩色图像,结果又是灰度。请帮我找出问题所在。谢谢你。

对于双三次插值,我使用了包含梯度的矩阵。matix 可以在https://en.wikipedia.org/wiki/Bicubic_interpolation找到。

这是我的代码。

0 投票
1 回答
1721 浏览

python - Python:使用 GPU 进行双三次插值

在 python 中,我scipy.ndimage.zoom用来对图像执行双三次插值,但发现上采样速度太慢。我想用其他一些支持 GPU 的 python 库来替换它,但不幸的是我找不到一个可用于 python 的库。

NVIDIA 提供了一个很好的例子,它在 C/C++ 中完全实现了双三次插值。它们是我们可以直接使用和替换的众所周知的等效CUDA Pythonscipy.ndimage.zoom示例/库吗?

我在网上做了一些搜索,但无法在 python 中使用 GPU 找到双三次插值。因此,我相信没有多少答案会导致固执的答案和垃圾邮件。

0 投票
0 回答
54 浏览

interpolation - 理解双三次图像插值的难点

我需要编写一个 MATLAB 代码来实现三种类型的图像插值:(i)最近邻,(ii)双线性和(iii)双三次。

即使在互联网上彻底搜索了包括视频和文本在内的内容后,我仍然很难清楚地理解双三次图像插值的基本概念。

我基本上需要的是一个清晰的双三次图像插值示例,它将输入特定尺寸和特定强度值的图像,然后它将清楚地解释逐步计算以达到最终缩放或缩小的图像特定的强度值。

对于任何可以帮助我清楚地理解基本概念的示例,我将非常感激。

提前致谢。

0 投票
1 回答
688 浏览

c++ - 双三次插值结果与 FFMPEG 不同

我刚刚实现了双三次插值来调整图像大小。我有一个 6x6 像素(灰度)的测试图像,它的列是黑白的(x3)。我正在将我的代码结果与工具 ffmpeg 的结果进行比较,它们不正确。我不明白为什么,我想我可能计算错误的像素邻域或者调整大小的像素与原始像素的距离。有人可以查看我的代码(我会简化它以便更好地阅读)并告诉我错误在哪里?