我正试图弄清楚在这种情况下如何订购:
首先,我创建了带有两个for循环的图像块(仅举个例子):
cuts = 9 # This is for example, there could be much more blocks
for row in range(cuts):
for column in range(cuts):
block_min_x = (1 / cuts) * row
block_max_x = (1 / cuts) * (row + 1)
block_min_y = (1 / cuts) * column
block_max_y = (1 / cuts) * (column + 1)
然后我将这些“图像块”添加到数组中,并按顺序命名为“img_1_1,img_1_2,img_1_3,img_2_1,img_2_2,img_2_3…”。所以它在数组中看起来是这样的(带有数字的示例):
[6,7,8] [15,16,17] [24,25,26]
[3,4,5] [12,13,14] [21,22,23]
[0,1,2] [9,10,11] [18,19,20]
是否有某种方法可以使用numpy将这些块排序为如下所示:
[0,1,2] [3,4,5] [6,7,8]
[9,10,11] [12,13,14] [15,16,17]
[18,19,20] [21,22,23] [24,25,26]
这是一张更好地展示我所寻找的图像:
我不确定这类问题是否有某种术语,所以抱歉不能使用正确的TEM。问题似乎是我们需要“顺时针旋转”,正如您在示例图像中的蓝线中看到的那样。所以问题是,如何在numpy订购?另外,如果它可以在这些for循环中更改,那么很高兴知道
使用^{} :
即使这不是用numpy完成的,但对某些人来说仍然是有用的。我这样循环得到了正确的顺序。我相信这在代码中可以做得更好,但现在看来这是可行的:
前输出:
在之后输出:
如果你对我在哪里使用这个感兴趣的话。我创建了这个名为RenderFarts的blender插件。在那里,我需要在image merge function中进行排序,在那里我渲染部件,并需要将这些部件按正确的顺序排列。合并过程尚未工作,但这种排序似乎工作正常
相关问题 更多 >
编程相关推荐