Python: numpy.meshgrid的用法(光流法常用记录像素位置的一种方式)

meshgrid其实是构建网格的一种非常便捷的方式,尤其是在python中,用来画网格,提取对应位置的像素,或者在光流法中用来记录每个像素移动的位置都是经常使用的一个手段,下面给出一个简单的示例。

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,z)
plt.show()

在这里插入图片描述

生成对应范围的网格, 第一个是按照x轴进行网格分割,第二个结果是按照y轴进行网格分割,可以看到和OpenCV的x轴和y轴方向一致,所以可以用作图像的索引。

x = np.arange(0, 5)
y = np.arange(-1, 2)
xx, yy = np.meshgrid(x, y)
print(xx)
print(yy)
[[0 1 2 3 4]
 [0 1 2 3 4]
 [0 1 2 3 4]]
[[-1 -1 -1 -1 -1]
 [ 0  0  0  0  0]
 [ 1  1  1  1  1]]

之前python有很多的用法都没有记录,现在对于算法常用的一些小trick也会进行记录,篇幅很短,但都是很有用的。

发布了349 篇原创文章 · 获赞 237 · 访问量 65万+

猜你喜欢

转载自blog.csdn.net/Felaim/article/details/104768426