我有一个四维数组,我需要在其中找到一些模式。模式将在最后两个维度中进行评估,扫描前两个维度。 这有点像在图像上使用点击或未命中功能,但不是在图像的两个维度上评估这些点的值上的图案,我需要扫描两个维度,寻找另外两个维度中的图案关键点及其周围环境。 我当前的代码看起来像这样,但考虑到它将寻找除了下面描述的两个模式之外的模式,以及实时运行,我需要更快地运行。
image = np.empty((240,320,2,3), np.bool)
# image receive some data
for y in range(1, 239):
for x in range(1, 319):
if image[y][x-1][1][1] and image[y][x][1][2]:
FindPattern1[y][x] = True
if image[y-1][x][0][1] and image[y][x][0][2]:
FindPattern2[y][x] = True
我考虑使用带有多维结构的命中或未命中变换来扫描image[y][x]
,但无法使其完美运行。你们有什么想法解决这个问题吗?
答案 0 :(得分:0)
好像你只需要做一些花哨的索引和logical_and
。
find_pattern_1 = np.logical_and(image[1:, :-1, 1, 1], image[1:, 1:, 1, 2])
find_pattern_2 = np.logical_and(image[:-1, 1:, 0, 1], image[1:, 1:, 0, 2])