标签: interpolation

OpenCV resize() 中的 INTER_LINEAR 插值如何工作?

我正在弄清楚当我们设置fx=2和时,OpenCV resize() 函数如何计算线性插值fy=1。我写了以下最小工作示例,

import cv2
import numpy as np

pattern_img = np.zeros((6, 6), np.uint8)
pattern_img[:, 0::2] = 255
patteen_img_x2 = cv2.resize(pattern_img, None, fx=2, fy=1, interpolation=cv2.INTER_LINEAR)
Run Code Online (Sandbox Code Playgroud)

如果我们看pattern_img和的第一行pattern_img_x2,我们会得到,

pattern_img[0, :]
> array([255,   0, 255,   0, 255,   0], dtype=uint8)
pattern_img_x2[0, :]
> array([[255, 191,  64,  64, 191, 191,  64,  64, 191, 191,  64,   0]], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)

我不知道数字 191 和 64 是如何计算的。我知道它实现了bilinear算法,但在本例中我们设置了fy=1,所以它应该是沿 x 轴的简单线性插值。但我不知道如何resize()计算这些插值数字。有人可以帮助我理解背后的算法吗?

interpolation opencv resize

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

使用样条插值而不超过下一个值 R

我有一个累积数据的数据集。我试图插入一些缺失的值,但在某些时候我得到了更高的值。这是我的数据的示例:

dat <- tibble(day=c(1:30),
              value=c(278, 278, 278, NA, NA, 302, 316, NA, 335, 359, NA, NA,
                      383, 403, 419, 419, 444, NA, NA, 444, 464, 487, 487, 487, 
                       NA, NA, 487, 487, 487, 487))
Run Code Online (Sandbox Code Playgroud)

我的数据集很长,当我使用 smooth.spline 插入缺失值时,我得到的值大于下一个观察值,考虑到我正在处理累积的数据,这是相当荒谬的。这是我得到的输出:

value.smspl <- c(278, 278, 278, 287.7574, 295.2348, 302, 316, 326.5689, 335, 
359, 364.7916, 377.3012, 383, 403, 419, 419, 444, 439.765, 447.1823, 
444, 464, 487, 487, 487, 521.6235, 526.3715, 487, 487, 487, 487)
Run Code Online (Sandbox Code Playgroud)

平滑样条

我的问题是:您能否以某种方式为插值设置边界,以便结果可靠?如果是这样,你怎么能做到呢?

interpolation r spline

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

OpenGL使用什么类型的像素插值?

我想知道OpenGL使用什么类型的Pixel Interpolation.它是否使用标准像素插值技术之一,如最近邻,双线性或双立方?

opengl interpolation pixel

0
推荐指数
1
解决办法
2373
查看次数

用于In循环的CoffeeScript字符串插值添加逗号

这个coffeescript ......

"""
#{@display_event_small(event) for event in data.top_events}
"""
Run Code Online (Sandbox Code Playgroud)

在data.top_events中的每个元素之间输出逗号.我需要让它们连接在一起而不用逗号.当然,我可以使用更自定义的循环,但我认为CoffeeScript有更好的方法来改变这种行为.

如果我需要澄清,请告诉我.谢谢.

arrays string interpolation loops coffeescript

0
推荐指数
1
解决办法
962
查看次数

在PHP中格式化Echo语句

重新格式化此PHP语句以说"版权所有©2013 My Company.保留所有权利"的正确方法是什么.(没有引号)?

<?php _e('All Rights Reserved', 'mycompany'); ?> <a href="/">My Company</a> &copy; <?php echo date('Y');?>

截至目前,上述声明呼应"版权所有我公司©2013"​​.

php wordpress interpolation echo string-interpolation

0
推荐指数
1
解决办法
183
查看次数

用matlab插值

我有一个具有不同值的向量.有些值是零,有时甚至是一个接一个.我需要将这个向量映射到另一个具有相同大小的向量,但我不能在其中有零.我可以对矢量进行某种插值的最佳方法是什么?我该怎么做?我试着在mat-lab中阅读有关插值的内容,但我不太了解实现它.如果有可能一步一步地向我解释,我会很感激,因为我是这个项目的新手.

谢谢

matlab interpolation

0
推荐指数
1
解决办法
810
查看次数

使用MATLAB在3D MRI体积中创建中间切片

我有9张MRI图像,想用这些图像制作3D体积.从那里,我想插入每个切片之间.给定卷中的两个切片,我想在两个切片之间插入一个中间帧.目标是创建一个执行此插值的18 MRI体积.

我将如何在MATLAB中实现这一目标?

matlab interpolation image-processing multidimensional-array

0
推荐指数
1
解决办法
2172
查看次数

Python:interpolate.UnivariateSpline包'错误:(m> k)因隐藏m而失败:fpcurf0:m = 0'

我一直试图绘制一条线,以及样条拟合.以下是我的代码的通用版本.'x_coord'和'y_coord'是包含浮点值列表的列表.

import matplotlib.pyplot as plt
from scipy import interpolate as ipl

for a in range(len(x_coord)):
    plt.plot(x_coord[a],y_coord[a],label='Label')
    yinterp = ipl.UnivariateSpline(x_coord[a],y_coord[a],s=1e4)(x_coord[a])
    plt.plot(x_coord[a],yinterp,label='Spline Fit')
Run Code Online (Sandbox Code Playgroud)

虽然我认为这在过去对我有用,但现在我收到一条错误消息:

/.../Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/scipy/interpolate/fitpack2.pyc in __init__(self, x, y, w, bbox, k, s, ext)
    165 
    166         data = dfitpack.fpcurf0(x,y,k,w=w,
--> 167                                 xb=bbox[0],xe=bbox[1],s=s)
    168         if data[-1] == 1:
    169             # nest too small, setting to maximum bound

error: (m>k) failed for hidden m: fpcurf0:m=0 
Run Code Online (Sandbox Code Playgroud)

我已经看到类似错误消息的情况(例如dfitpack.error:(m> k)因隐藏的m:fpcurf0:m = 1而失败),只是在那种特殊情况下似乎存在涉及字典的问题,其中没有一个用于我的代码.

关于这个问题的任何建议将不胜感激.

python interpolation scipy

0
推荐指数
1
解决办法
4506
查看次数

使用LinearNDInterpolator(Python)绘制插值

我使用以下脚本在一些(x,y,z)数据上使用LinearNDInterpolator。但是,我不知道如何从插值数据转到以热图形式绘制/显示插值?我是否缺少基于x和y的最小值和最大值设置网格网格的内容?任何帮助或示例都很好!

import numpy as np
import scipy.interpolate

x = np.array([-4386795.73911443, -1239996.25110694, -3974316.43669208,
               1560260.49911342,  4977361.53694849, -1996458.01768192,
               5888021.46423068,  2969439.36068243,   562498.56468588,
               4940040.00457585])

y = np.array([ -572081.11495993, -5663387.07621326,  3841976.34982795,
               3761230.61316845,  -942281.80271223,  5414546.28275767,
               1320445.40098735, -4234503.89305636,  4621185.12249923,
               1172328.8107458 ])

z = np.array([ 4579159.6898615 ,  2649940.2481702 ,  3171358.81564312,
               4892740.54647532,  3862475.79651847,  2707177.605241  ,
               2059175.83411223,  3720138.47529587,  4345385.04025412,
               3847493.83999694])

# Create coordinate pairs
cartcoord = zip(x, y)

# Interpolate
interp = scipy.interpolate.LinearNDInterpolator(cartcoord, z)
Run Code Online (Sandbox Code Playgroud)

编辑:基于@Spinor的解决方案,并使用Python 2.7,以下代码为我提供了我正在寻找的方法(方法1)。有没有办法增加插值点的密度?

数据集产生以下图: 在此处输入图片说明

不用说,我没想到结果是圆形的,因为(纬度,经度)坐标取自等角投影图。在进一步调查中,我认为这只是映射到不同的投影上

python interpolation imaging scipy

0
推荐指数
1
解决办法
5622
查看次数

数转换日期(Oracle)

我有一个与日期匹配的数字,我不知道如何使用该日期计算数字,这里有三个例子:

08/08/2018 12:23     73691437391180 
08/08/2018 12:32     73691437976165 
11/11/2015 14:41     73591349310000
Run Code Online (Sandbox Code Playgroud)

如果我从第一个中减去第二个,我得到9.74975的差异,它对应于通过的分钟(和秒?)?

提前致谢!

PS:数据存储在Oracle数据库中.如果需要,可以生成更多示例.

oracle math datetime interpolation

0
推荐指数
1
解决办法
60
查看次数