问题标签 [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.
algorithm - Matlab中双三次插值的解释?
我对 Matlab 在http://www.mathworks.com/help/vision/ug/interpolation-methods.html#f13689上的双三次插值示例感到困惑
我想我理解他们的双线性示例。似乎他们取了两边相邻翻译值的平均值。因此,为了在第一行第一列中获得 0.5,取 0 和 1 的平均值。
对于他们的双三次插值示例,我对他们的方法感到很困惑。他们说他们采用“两边的两个翻译值的加权平均值”。
在他们的例子中,他们有
在双三次插值的第一步中,他们向矩阵添加零并将其向右平移 0.5 个像素,得到以下结果:
然后,使用加权平均,他们得到
但是,我不确定他们是如何获得这些数字的。而不是第一行第一列中的 0.375 ,我会改为 (1 * 3/8 + 2 * 1/8) = 5/8 。这是因为格式似乎是
其中 d 是距离。
所以要取翻译值的加权平均值,我们可以注意到我们可以首先做 (3d + d + d + 3d) = 1,所以 d = 1/8。这意味着我们应该在每个更接近的翻译值上放置 3/8 权重,在每个更远的翻译值上放置 1/8 权重。这导致 (0 * 1/8 + 0 * 3/8 + 1 * 3/8 + 2 * 1/8),这是 5/8,与他们的 3/8 结果不匹配。我想知道我哪里出错了。
谢谢!
matlab - 图像的双三次插值
我有一个具有以下强度的 4*4 图像“A”。
我正在使用 matlab 对此图像进行双三次插值
我得到了一个 7*7 的图像(B)作为输出。
但是我需要一个8 * 8的图像。如何实现。请解释方法。
interpolation - Bicubic interpolation for multiple dimensions?
There is a Wikipedia article on bicubic interpolation fro 2D functions.
Is it possible to generate the same/similar matrices for ND function interpolation?
image-processing - 图像处理:使用输入图像中像素的强度值进行插值
当我们进行图像插值时,我认为我们将使用输入图像中像素的强度值。
(A) 我正在阅读GPU Gems Chapter 24. High-Quality Filtering中的三次插值代码。这是他们的代码片段:
示例 24-9。过滤四个 Texel 行,然后将结果过滤为一列
由于他们从 frac(t) 获得子纹素部分,因此“t”并不完全位于输入图像的像素位置。那么“t”如何直接用于从原始图像中采样强度值,例如“texRECT(tex, t + float2(-1, -1))”?
就个人而言,我认为我们应该使用
(B) 与“使用不同插值类型缩放图像”的示例相同
他们的“双三次插值的 GLSL 着色器代码”片段是:
我认为我们应该使用:
然后使用 m 和 n 的偏移量
(C) 现在我很困惑。我认为我们将在输入图像中使用“精确”像素的强度值。我们应该使用哪种方式?
matlab - openCV bicubic imresize 创建负值
我注意到,当使用双三次插值对 openCV 中的矩阵进行下采样时,即使原始矩阵都是正数,我也会得到负值。
我附上以下代码作为示例:
我不明白为什么会这样。我注意到,如果我在 [0,100] 之间选择随机值,则在调整大小后,最小值通常为 ~-24 与 -0.24 的范围为 [0,1] ,如上面的代码所示。
作为比较,在 Matlab 中不会发生这种情况(我知道加权方案略有不同,如下所示:imresize comparison - Matlab/openCV)。
这是一个简短的 Matlab 代码片段,它保存了 1000 个随机缩小矩阵(eahc 矩阵的原始尺寸为 1000x1000)中的任何一个中的最小值:
image-processing - 双三次插值给出错误的结果
我正在尝试为缩放和倾斜等图像转换实现双三次插值,但图像输出似乎不准确。插值像素有时会溢出超过 255。
这是代码:
输出用于缩放变换
双线性输出:
双三次输出
java - Java AWT/ImageIO:JPEG 图像的双线性和双三次缩放导致完全黑色的输出
最近邻缩放有效:当我使用TYPE_NEAREST_NEIGHBOR
.
尽管它是 Scala 代码,但所有使用的库都是标准 Java 库。
职能:
调用代码片段:
result
被写入 SQLite 数据库。如果我从数据库中下载它并将其保存为 JPEG 文件,则生成的 JPEG 是
- 正如预期的那样,如果我使用
AffineTransformOp.TYPE_NEAREST_NEIGHBOR
- 如果我使用完全黑
AffineTransformOp.TYPE_BILINEAR
- 如果我使用完全黑
AffineTransformOp.TYPE_BICUBIC
因此,我指责AffineTransformOp
是错误的......
我该如何解决这个问题?
文件的幻数result
总是ff d8 ff
与 JPEG 的预期一致。
细节
Java 版本:Java HotSpot(TM) 64 位服务器 VM,Java 1.7.0_71
操作系统:苹果、OS X 10.9.5
测试图片:http ://www.photos-public-domain.com/wp-content/uploads/2012/05/thundercloud-plum-blossoms.jpg
c++ - 拼凑图像插值
我已经根据我的 3D 模型的顶点手动生成了一个深度图(不,在这种情况下我不能使用 z 缓冲区)。
不幸的是,深度图就像一个有很多洞的拼凑而成。这是它的样子:
http://i.stack.imgur.com/ZHCKr.png
我想以某种方式插入那些缺失的漏洞,但我以前从未做过这样的事情,也不知道如何解决这个问题。
我在考虑双三次/双线性插值。那是我需要应用于我的问题吗?
如果是这样,您能否向我解释一下如何采用这种方法?如果那种插值不是正确的,我该如何解决这个孔问题?