从图像中不完整的位置截取样本?

2024-04-16 21:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我们可以从图像中的整数位置进行采样,因为图像被构造为二维数组,我们只需获取数组位置中的任何数据。在

对于非整数位置,比如说在两个像素之间,这就不那么简单了。然而,这是一个很常见的问题,(例如)只要你对线性插值感到满意,(例如)gpu在硬件中就有这种功能。我在skimage中找不到任何功能,但它似乎是图像处理的基础,我觉得我一定遗漏了什么。在

我希望有这样的东西:

sample(img, (64.5, 120.37), interpolation='linear')

Tags: 数据sample图像功能img硬件gpu整数
1条回答
网友
1楼 · 发布于 2024-04-16 21:18:48

Scipy的interp2d可以成功地用于图像插值。在

让我们从一个示例图像开始(为了简单起见,随机灰度,colormap来自matplotlib,我用它来绘制):

np.random.seed(42)
np.random.randint(255, (10, 10))

enter image description here

现在我们可以初始化插值器了

^{pr2}$

并在新的网格上进行评估

xdense = np.linspace(0, 9, 100)
ydense = np.linspace(0, 9, 100)
newimg = f(xdense, ydense)

enter image description here

你也可以用它来采样任意点

f(0.192321, 5.99927371)

给予

array([99.04826046])

使用skimage您可能可以获得类似的重新缩放和重采样,但这种方法对我来说更方便。在

相关问题 更多 >