【发布时间】:2025-12-24 21:45:06
【问题描述】:
在这里的示例中,我们有数组矩阵 2*2 但它可以是任何例如4x4、16x16。
例如:我们通过第一个数组第 1 行,然后我们通过第二个数组第 1 行。当我们到达数组的最后 2 个项目的末尾后,我们跳转到第三个数组,依此类推。我们知道每个数组(图像部分)包含 64 列/行(像素),因此对于 128 像素的图像,我们循环 2 个数组,然后移动底部的数组。
这种场景下遍历数组的公式是什么?
这是我试图做的事情,但没有奏效......
# e.g. we have final image 128x128, so we have parts 4 * 64x64
# Empty arrays for every pixel
final_image_pixels = [None] * part_pixel_count * total_parts_count
# Loop through every parts
for i in range(len(image_pixels)):
for x in range(part_width):
for y in range(part_height):
# Get location on part
px_part_index = x + y * part_width
# Index on final array
px_final_index = px_part_index + (i * part_pixel_count)
final_image_pixels[px_final_index] = image_pixels[i][px_part_index]
现在结果: (这些颜色与上面的描述图片无关)
应该是:
【问题讨论】:
-
所以在订购时考虑到您的输出,您还会删除重复值吗?
-
@Marcos 不,没有重复值。每个像素只有一个阵列。所以我不想删除可能的重复值。如果您考虑该图像,数字更像是索引值。
-
为什么希望结果是单项列表的列表,而不是简单的数字列表?
-
从你的问题:“到这个
[ [1],[2],[3],[4],[5]... ]”肯定是你真正想要的那些输入[ [1],[2],[3],[1],[2],... ]? -
@JimOldfield 更新了帖子并试图解释我的意思。希望它更有意义。
标签: python arrays list for-loop pixel