当前位置: 首页 > 面试题库 >

numpy和python中的图像简单,高效的双线性插值

元嘉木
2023-03-14
问题内容

如何在python中以numpy数组表示的图像数据实现双线性插值?


问题答案:

我发现有关此主题的许多问题和许多答案,尽管对于数据由网格上的样本(即矩形图像)组成并表示为numpy数组的常见情况而言,没有一个是有效的。此函数可以将列表作为x和y坐标,并且无需循环即可执行查找和求和。

def bilinear_interpolate(im, x, y):
    x = np.asarray(x)
    y = np.asarray(y)

    x0 = np.floor(x).astype(int)
    x1 = x0 + 1
    y0 = np.floor(y).astype(int)
    y1 = y0 + 1

    x0 = np.clip(x0, 0, im.shape[1]-1);
    x1 = np.clip(x1, 0, im.shape[1]-1);
    y0 = np.clip(y0, 0, im.shape[0]-1);
    y1 = np.clip(y1, 0, im.shape[0]-1);

    Ia = im[ y0, x0 ]
    Ib = im[ y1, x0 ]
    Ic = im[ y0, x1 ]
    Id = im[ y1, x1 ]

    wa = (x1-x) * (y1-y)
    wb = (x1-x) * (y-y0)
    wc = (x-x0) * (y1-y)
    wd = (x-x0) * (y-y0)

    return wa*Ia + wb*Ib + wc*Ic + wd*Id


 类似资料:
  • 问题内容: 我想使用python执行blinear插值。 我要插入高度的示例gps点是: 使用具有已知坐标和高度值的四个相邻点: 这是我的原始尝试: 其中z0和z1 我得到31.964,但从其他软件得到31.961。 我的脚本正确吗? 您可以提供另一种方法吗? 问题答案: 这是您可以使用的可重用功能。它包括doctest和数据验证: 您可以通过添加以下内容来运行测试代码: 在数据集上运行插值将产生

  • >>> class MyClass(): ... def __init__(self): ... self.__superprivate = "Hello" ... self._semiprivate = ", world!" ... >>> mc = MyClass() >>> print mc.__superprivate Traceback (most recen

  • 我有一个摄像头,正在发送图像数据到我的电脑。从那里,我的python脚本将8bit颜色信息(黑色和白色;范围从0-black-到255-white)放入一个numpy数组。数组是2D,第一维最多384维,第二维最多288维,用openCV窗口显示效果很好,现场视频超过24fps。 我现在的目标是操纵图像,使现场视频显示任何低于200的颜色值为0(完全黑色),任何高于200的颜色值为255(完全白色

  • 问题内容: 我试图在我的简单GUI上显示一些卡,但是没有显示。 我已使用要上传的.gif上传了一个工作文件,该代码已关闭但不正确。 http://www.filedropper.com/cardgameproblem大小:0Kb,类型:.zip 包含1个.py和1个.gif 要看的线始于257-266。我知道这只是一个小错误,但我看不到它。 请帮忙 问题答案: 经过一番修补,我发现当将图像存储在G

  • 问题内容: 我有两个数组,比如说varx和variant。两者在不同位置都包含NAN值。但是,我想对两者进行线性回归,以显示两个数组之间的相关程度。到目前为止,这非常有帮助:http : //glowingpython.blogspot.de/2012/03/linear- regression-with-numpy.html 但是,使用此: 对每个输出变量都得出nans。从两个数组中仅取有效值作

  • 本文向大家介绍python实现简单的单变量线性回归方法,包括了python实现简单的单变量线性回归方法的使用技巧和注意事项,需要的朋友参考一下 线性回归是机器学习中的基础算法之一,属于监督学习中的回归问题,算法的关键在于如何最小化代价函数,通常使用梯度下降或者正规方程(最小二乘法),在这里对算法原理不过多赘述,建议看吴恩达发布在斯坦福大学上的课程进行入门学习。 这里主要使用python的sklea