2017-03-03 223 views
0

我目前正在numpy中加載很多不同大小的圖片,但似乎有關於矩陣形狀的一些問題。儘管圖像不同,但它們都是一樣的。爲什麼不同大小的圖像在numpy中的大小相同?

實施例:

long rectangular image

square image

兩者都使用此功能加載。

def load_image(infilename) : 
    img = Image.open(infilename) 
    img.load() 
    data = np.asarray(img, dtype="int32") 
    return data 

但都有data.shape爲(441,816,3) 441有道理的,因爲所有的圖像具有相同的行數,和3,因爲它是RGB,但816是沒有意義的?..他們有不同數量的列? ...那麼爲什麼它加載,就好像它們都具有相同的列數。

+2

我能想到的唯一的事情是,你傳遞了錯誤的事情'infilename'和它不會因呼叫而改變。嘗試在代碼中臨時添加一個'img.show()'來查看加載的內容。 –

回答

0

錯誤不在您顯示的代碼中。我試着用自己的圖像和下面的程序:

from PIL import Image 
import numpy as np 

def load_image(infilename): 
    img = Image.open(infilename) 
    img.load() 
    data = np.asarray(img, dtype="int32") 
    return data 

one = load_image("one.png") 
two = load_image("two.png") 

print "One:", one.shape 
print "Two:", two.shape 

產量爲

One: (441, 1302, 3) 
Two: (441, 543, 3) 
+0

你是絕對正確的..沒有什麼是錯的代碼。這只是我用它的方式! – user7654132

相關問題