标签: interpolation

Chrome/Safari中的图像插值模式?

我需要使用最近邻居调整大小的图像渲染,而不是当前使用的双三次方式.我目前使用以下内容:

ms-interpolation-mode: nearest-neighbor;
image-rendering: -moz-crisp-edges;
Run Code Online (Sandbox Code Playgroud)

这适用于IE和Firefox,但不适用于Chrome和Safari.是否有任何webkit替代方案或任何其他方式来实现此效果?

css interpolation image nearest-neighbor

19
推荐指数
2
解决办法
2万
查看次数

如何在C++中实现Bézier曲线?

我想实现Bézier曲线.我以前在C#中做过这个,但我对C++库完全不熟悉.我该如何创建二次曲线?

void printQuadCurve(float delta, Vector2f p0, Vector2f p1, Vector2f p2);
Run Code Online (Sandbox Code Playgroud)

显然我们需要使用线性插值,但这是否存在于标准数学库中?如果没有,我在哪里可以找到它?

更新1:

对不起,我忘了提到我正在使用Linux.

c++ math interpolation spline

16
推荐指数
4
解决办法
6万
查看次数

降尺度时的插值算法

我试图了解降尺度.我可以看到,当升级时,可以使用插值算法,例如bicubic和最近邻居,以便在旧的已知点(图像的情况下为像素)之间"填充空白".

降尺度?我不知道如何在那里使用任何插值技术.没有填空的空白!

我长期以来一直坚持这一点,给我一个正确方向的推动.实际上,当您删除已知数据时,如何进行插值?

编辑:让我们假设我们有一个一维图像,每个点有一个颜色通道.通过平均像素值缩放6到3个点的缩减算法如下所示:1,2,3,4,5,6 =(1 + 2)/ 2,(3 + 4)/ 2,(5 + 6)/ 2我在这里走在正确的轨道上吗?这种插值是缩减而不仅仅是丢弃数据吗?

algorithm interpolation image

16
推荐指数
4
解决办法
1万
查看次数

你如何对重新采样的音频数据进行双三次(或其他非线性)插值?

我正在编写一些以不同速度播放WAV文件的代码,因此波浪要么慢,要么低音,要么更快,音高更高.我目前正在使用简单的线性插值,如下所示:

            int newlength = (int)Math.Round(rawdata.Length * lengthMultiplier);
            float[] output = new float[newlength];

            for (int i = 0; i < newlength; i++)
            {
                float realPos = i / lengthMultiplier;
                int iLow = (int)realPos;
                int iHigh = iLow + 1;
                float remainder = realPos - (float)iLow;

                float lowval = 0;
                float highval = 0;
                if ((iLow >= 0) && (iLow < rawdata.Length))
                {
                    lowval = rawdata[iLow];
                }
                if ((iHigh >= 0) && (iHigh < rawdata.Length))
                {
                    highval = rawdata[iHigh];
                }

                output[i] = …
Run Code Online (Sandbox Code Playgroud)

audio interpolation signal-processing resampling bicubic

16
推荐指数
2
解决办法
1万
查看次数

R中的线性插值

我有一个真实数据的数据集,例如看起来像这样:

# Dataset 1 with known data
known <- data.frame(
    x = c(0:6),
    y = c(0, 10, 20, 23, 41, 39, 61)
)

plot (known$x, known$y, type="o")
Run Code Online (Sandbox Code Playgroud)

现在我想问一个问题是"如果原始数据集的所有中间数据点都在周围测量值之间的直线上,那么0.3的Y值是多少?"

 # X values of points to interpolate from known data
 aim <- c(0.3, 0.7, 2.3, 3.3, 4.3, 5.6, 5.9)
Run Code Online (Sandbox Code Playgroud)

如果你看图:我想得到Y​​值,其中ablines与已知数据的线性插值相交

abline(v = aim, col = "#ff0000")
Run Code Online (Sandbox Code Playgroud)

因此,在理想情况下,我将使用我已知的数据创建"linearInterpolationModel",例如

model <- linearInterpol(known)
Run Code Online (Sandbox Code Playgroud)

...然后,我可以询问Y值,例如

model$getEstimation(0.3)
Run Code Online (Sandbox Code Playgroud)

(在这种情况下应该给出"3")

abline(h = 3, col = "#00ff00")
Run Code Online (Sandbox Code Playgroud)

我怎么能意识到这一点?手动我会为每个值做这样的事情:

  1. 什么是最接近的X值较小Xsmall且最接近的X值大于Xlarge当前X值X.
  2. 计算较小X值的相对位置 relPos = (X - …

statistics interpolation r

16
推荐指数
2
解决办法
3万
查看次数

在Delaunay-triangulated表面中找到包含任意点的三角形

我正在寻找z(x,y)基于Delaunay三角剖分的不规则采样函数的线性插值.假设我有一座山,我已经获得了Delaunay三角剖分:

德劳内三角山

我知道z每个三角形顶点(样本)的高度.我想要z任意点的高度(x,y).

  • 如何判断哪个三角形包含点(x,y)?一旦我知道这一点,我想在三角形的三个顶点之间进行插值是相当简单的.

  • 你知道现成的这个实现吗?也许包括插值位?我确信必须在某处开源实现.我对Java(源代码或JAR)特别感兴趣,但任何VB或其他语言都可能有用.

java algorithm interpolation vba triangulation

16
推荐指数
1
解决办法
3707
查看次数

矩形网格上的Python 4D线性插值

我需要在4个维度(纬度,经度,高度和时间)中线性插值温度数据.
点数相当高(360x720x50x8),我需要一种快速的方法来计算数据范围内空间和时间任意点的温度.

我尝试过使用scipy.interpolate.LinearNDInterpolator但是使用Qhull进行三角测量在矩形网格上效率低下并且需要数小时才能完成.

通过阅读此SciPy票证,解决方案似乎是使用标准实现新的nd插值器interp1d来计算更多数据点,然后使用"最近邻居"方法和新数据集.

然而,这需要很长时间(分钟).

有没有一种快速的方法可以在4维的矩形网格上插入数据而无需花费几分钟才能完成?

我想过使用interp1d4次而不计算更高密度的点,但留给用户用坐标调用,但我无法理解如何做到这一点.

否则我会根据自己的需要编写自己的4D内插器吗?

这是我用来测试这个的代码:

使用scipy.interpolate.LinearNDInterpolator:

import numpy as np
from scipy.interpolate import LinearNDInterpolator

lats = np.arange(-90,90.5,0.5)
lons = np.arange(-180,180,0.5)
alts = np.arange(1,1000,21.717)
time = np.arange(8)
data = np.random.rand(len(lats)*len(lons)*len(alts)*len(time)).reshape((len(lats),len(lons),len(alts),len(time)))

coords = np.zeros((len(lats),len(lons),len(alts),len(time),4))
coords[...,0] = lats.reshape((len(lats),1,1,1))
coords[...,1] = lons.reshape((1,len(lons),1,1))
coords[...,2] = alts.reshape((1,1,len(alts),1))
coords[...,3] = time.reshape((1,1,1,len(time)))
coords = coords.reshape((data.size,4))

interpolatedData = LinearNDInterpolator(coords,data)
Run Code Online (Sandbox Code Playgroud)

使用scipy.interpolate.interp1d:

import numpy as np
from scipy.interpolate import LinearNDInterpolator

lats = np.arange(-90,90.5,0.5) …
Run Code Online (Sandbox Code Playgroud)

python interpolation numpy scipy

16
推荐指数
2
解决办法
1万
查看次数

Java 2D加权数据插值

我试图找到一些Java lib,代码示例(或起点)来帮助我弄清楚如何用权重插入2d点列表以生成带有水平曲线的插值.

谷歌搜索我发现有几种算法可以做到这一点,我找到了一些有趣内容的解释.我想要尝试的第一个算法是反距离加权插值.

但有了这些信息,我有一些基本的疑虑:

  • 要生成如下图所示的一张图片,我必须做一个像素矩阵(带有权重),插入数据,将像素组合在一起(按颜色范围)然后连接点确实绘制曲线并放置像这样的参考文本值?

  • 如果我需要做这个像素矩阵,对于一个巨大的插值来说它会非常昂贵,那么我可以做更少的点并使用样条曲线来加入然后创建颜色级别吗?

示例数据:

+-------------------+
|  X  |  Y  | WEIGHT|
+-------------------+
|  2  |  5  |   30  |
|  7  |  3  |   25  |
|  1  |  1  |   10  |
|  5  |  6  |   45  |
|  7  |  9  |   15  |
+-------------------+
Run Code Online (Sandbox Code Playgroud)

示例规则:

  • 00-10之间的值:蓝色
  • 10-20之间的价值:绿色
  • 值在20-30之间:黄色
  • 价值在30-40之间:红色

示例结果:

Shepard插值示例

示例数据,规则和结果不兼容,只是随机的例子来解释我的问题.


这是我的最终测试类:http://pastebin.com/nD6MT8eS

java algorithm interpolation

16
推荐指数
1
解决办法
5499
查看次数

Python大熊猫时间序列插值和正则化

我是第一次使用Python Pandas.我有csv格式的5分钟滞后流量数据:

...
2015-01-04 08:29:05,271238
2015-01-04 08:34:05,329285
2015-01-04 08:39:05,-1
2015-01-04 08:44:05,260260
2015-01-04 08:49:05,263711
...
Run Code Online (Sandbox Code Playgroud)

有几个问题:

  • 对于某些时间戳,缺少数据(-1)
  • 缺少参赛作品(也是连续2/3小时)
  • 观察的频率不是5分钟,但实际上偶尔会丢失几秒钟

我想获得一个固定的时间序列,所以每隔(完全)5分钟(并且没有丢失的价值)的条目.我已成功使用以下代码插入时间序列,以使用此代码逼近-1值:

ts = pd.TimeSeries(values, index=timestamps)
ts.interpolate(method='cubic', downcast='infer')
Run Code Online (Sandbox Code Playgroud)

我怎样才能插入和规范观测的频率?谢谢大家的帮助.

python interpolation time-series pandas regularized

16
推荐指数
1
解决办法
2万
查看次数

为什么不能使用一些Interpolator类顺利滚动RecyclerView呢?

背景

为了对水平RecyclerView上的项目进行简洁概述,我们希望有一个类似于弹跳的动画,从某个位置开始,然后转到RecyclerView的开头(例如,从第3项到第0项) .

问题

出于某种原因,我尝试的所有Interpolator类(此处提供的插图)似乎都不允许项目超出RecyclerView或反弹.

更具体地说,我尝试过OvershootInterpolator,BounceInterpolator和其他一些类似的东西.我甚至尝试过AnticipateOvershootInterpolator.在大多数情况下,它只进行简单的滚动,没有特殊效果.在AnticipateOvershootInterpolator上,它甚至不滚动...

我试过的

以下是我所制作的POC的代码,以显示问题:

MainActivity.kt

class MainActivity : AppCompatActivity() {
    val handler = Handler()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val itemSize = resources.getDimensionPixelSize(R.dimen.list_item_size)
        val itemsCount = 6
        recyclerView.adapter = object : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
            override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
                val imageView = ImageView(this@MainActivity)
                imageView.setImageResource(android.R.drawable.sym_def_app_icon)
                imageView.layoutParams = RecyclerView.LayoutParams(itemSize, itemSize)
                return object : RecyclerView.ViewHolder(imageView) {}
            }

            override fun getItemCount(): Int = itemsCount

            override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
            } …
Run Code Online (Sandbox Code Playgroud)

android interpolation scroll android-recyclerview

16
推荐指数
1
解决办法
1202
查看次数