首页 > 解决方案 > 如何使用 numpy 或 scipy 或其他 python 兼容库线性插入图像的内部、中间边界区域

问题描述

我正在尝试在以下红外图像中线性插值伪影: 要插值的图像

有没有一种紧凑的方法可以使用 python 兼容的库来做到这一点,最好是 numpy 或 scipy?

我通过单独插入每一侧来尝试行人方法。以下代码应计算顶部边框插值:

top_up = np.copy(image[border - 3:border - 2, border:-border])
top_down = np.copy(image[border:border + 1, border:-border])
dif_top = (top_up - top_down) / 3
image[border - 2:border - 1, border:-border] = top_up - dif_top
image[border - 1:border, border:-border] = top_down + dif_top

备注:'border'是从上/下/左/右到工件的END(内部)的距离。例如 row[border] 是工件之后正确的第一行。对于此处的此图像,伪影为两个像素宽。

出于某种原因,上面的代码仅适用于几个像素,但不适用于整行。我认为错误可能是因为切片只创建一个视图。因此,我添加了 np.copy 但这没有帮助。这是顶部边框的“内插”区域的图像:

部分插值的顶部边框

例如,假设 0 代表黑色边框伪影,则输入

11111
10001
10301
10001
11111

应该给

11111
12221
12321
12221
11111

标签: pythonnumpyopencvscipyscikit-image

解决方案


推荐阅读