2017-08-25 133 views
0

我嘗試CV2圖像陣列轉換多線,單線一個陣! 這是我的代碼:蟒蛇CV2數組numpy的

im =[] 
img = cv2.imread('.jpg',0) 

for i in img : 

    im.append(np.array(i)) 

print (im) 

我有這樣的結果: [陣列([0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0 ,0, 0,0,0,0,0,0,255,255,255,255,255],D型細胞= UINT8),陣列([0,0,0,0,0,0,0,0 ,0,255,255,255,255, 255,255,255,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0 ,0,0,0,0,0,0,0,,0,0,0,0,0,0,0,0,0,0]

但是我不知道ED一個行陣列: [ '0', '0', '0', '255', '255', '255', '255', '254', '255', '255', '253' ,'255','254','255','254','255','254','254','255','255','255','255','255',' 255' , '255', '255', '253',「253 ........]

我做錯了嗎?!也許有一些基本功能從cv2數組轉換爲單個數組?

+0

當添加一個numpy數組到一個帶有append的列表時,你期望什麼?這是基本的Python和基本的numpy!我推薦numpy文檔(數組創建,拼合,...)。我也想知道你爲什麼要這樣做(因爲以後很難處理)。 – sascha

+0

是的,它是一個錯誤,我的意思是 - 「im = np.array」,因爲我需要一行數組來處理下一個操作!我需要二維數組後,與numpy.array(數組,ndmin = 2).T – TheRutubeify

+0

您正在追加* array *,而不是數組的*值*。所以你的列表'im'將由多個'numpy'數組組成。還有另一種'numpy'方法來追加值而不是數組:'.extend()'。所以'im.extend(i)'會做你的期望。然而,使用'hstack()'的答案效率要高得多(不需要在python中循環你的數組),所以你應該明白這一點。 –

回答

1
newarray = np.hstack(img) 
print (newarray) 
+0

這是一個完成OP想要完成的任務的好方法,但是您能否提供更多解釋給答案,並且可能會鏈接一些文檔,以便OP能夠更好地理解爲什麼這是首選? –