Python 制作所有可能的对称4x4像素图像
我被卡住了。。。 我计划制作所有可能的对称4x4像素图像。也就是说,图像的左侧是右侧的镜像。为此,我制作了所有可能的2x4像素图像,并将它们存储在2D数组列表中,因此第一项将如下所示,然后继续使用1而不是0:Python 制作所有可能的对称4x4像素图像,python,arrays,csv,numpy,iteration,Python,Arrays,Csv,Numpy,Iteration,我被卡住了。。。 我计划制作所有可能的对称4x4像素图像。也就是说,图像的左侧是右侧的镜像。为此,我制作了所有可能的2x4像素图像,并将它们存储在2D数组列表中,因此第一项将如下所示,然后继续使用1而不是0: [[0,0], [0,0], [0,0], [0,0]] 然后,我的计划是迭代列表,通过反转每个阵列并将其与另一个阵列组合,创建4x4像素图像 最终的结果是我被卡住了!结果应该是一个.csv文件,其中每一行都是一个4x4像素的图像,如下所示: row1,row2,row3,row4
[[0,0],
[0,0],
[0,0],
[0,0]]
然后,我的计划是迭代列表,通过反转每个阵列并将其与另一个阵列组合,创建4x4像素图像
最终的结果是我被卡住了!结果应该是一个.csv文件,其中每一行都是一个4x4像素的图像,如下所示:
row1,row2,row3,row4
0000,0011,1100,0000
1101,1010,0101,1011
到目前为止,我得到的是:
import numpy as np
seq = itertools.product("01", repeat=8)
data = []
for s in seq:
arr = np.fromiter(s,np.int8).reshape(4,2)
data = np.append(data, arr)
np.savetxt("test.csv", data, delimiter=",")
但这只是开始。我已经试了一段时间了,我想我已经看不见自己了!有没有人有一个简洁的方法来管理这一点?你可以尝试用这一行在你的图像中迭代,但不确定它有多“pythonic”:
'{0}{1}{1}{0},{2}{3}{3}{2},{4}{5}{5}{4},{6}{7}{7}{6}'.format(*seq[i])
这将获取序列列表,并为包含左侧图像的每个元组创建右侧图像。在numpy中,您可以按如下方式旋转二维图像
image[::-1, ::-1]
要将两部分结合起来:
np.c_[image, image[::-1, ::-1]]
要获取所需的格式,请执行以下操作:
','.join(['{:04b}'.format(n[0]) for n in np.packbits(image, axis=-1) >> 4])
您的输出是什么样子的?