我的代碼如下所示:當我將二維灰度PIL圖像轉換爲一維numpy數組後,什麼是最平滑的方式來到二維numpy數組(圖像/矩陣)?
img = Image.open(path)
pix = np.asarray(img)
# i tried to access an (x,y) pixel and found the array was one dimensional
print str(float(pix[1,1])), "\t",
我需要洗牌一維數組,以便它是2D的,所以我可以訪問(X,Y)的像素。最順利的方法是什麼?
我得到這個錯誤對於上面:
IndexError: too many indices for array
編輯:
下面是執行上面的代碼後,從終端收集的一些信息。 np.asarray()顯然是在做一些事情,關於圖像尺寸的信息仍然包含在ndarray pix
- array(<PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1280x1080 at 0x110CA9F38>, dtype=object)
中。
>>> img
<PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1280x1080 at 0x110CA9F38>
>>> pix
array(<PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1280x1080 at 0x110CA9F38>, dtype=object)
>>> type(img)
<type 'instance'>
>>> type(pix)
<type 'numpy.ndarray'>
>>> img.size
(1280, 1080)
>>> pix.size
1
你可以用'.flat()''中numpy' –
對不起,我很困惑 - 我以爲平()崩潰的數組爲一個維 - 與我想要的相反。 – user391339