2017-02-27 48 views
3

我被卡住了... 我打算製作所有可能的4x4像素圖像是對稱的。那就是圖像的左側是右側的鏡子。要做到這一點,我已經做了一切可能的2x4像素的圖片有,並將它們存儲在二維數組列表,所以第一個項目將是這樣的,然後繼續1,而不是0:製作所有可能的對稱4x4像素圖像

[[0,0], 
[0,0], 
[0,0], 
[0,0]] 

我的計劃然後遍歷列表並通過反轉每個陣列並將其與另一個陣列結合來創建4x4像素圖像。

最後的結果永遠是我卡住的地方!結果應該是一個.csv文件,其中每一行是一個4×4像素的圖像是這樣的:

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=",") 

但是,這僅僅是個開始。我一直在嘗試這一段時間,我認爲我瞎了眼睛!有沒有人有一個乾淨的方式來管理呢?

+0

您輸出看起來像? – Jacobr365

回答

1

在numpy的,你可以按照如下

image[::-1, ::-1] 

兩個半結合旋轉2D圖像:

np.c_[image, image[::-1, ::-1]] 

得到你想要的格式:這是什麼

','.join(['{:04b}'.format(n[0]) for n in np.packbits(image, axis=-1) >> 4]) 
0

,可以嘗試通過您的圖片與該行迭代,但不知道如何「Python化」,它是:

'{0}{1}{1}{0},{2}{3}{3}{2},{4}{5}{5}{4},{6}{7}{7}{6}'.format(*seq[i]) 

這需要您的序列表,並創建右側包含您的左側圖像的每個元組。

相關問題