哎呀崩潰!!!關於np.shape()在對數組和圖片使用時的差異

由於對np.shape()這個函數輸出的值很好奇,在網上查詢結果不統一,於是自己通過手動實驗看一下結果

構造矩陣

import numpy as np
import cv2

a=np.array(range(0,36))
b=a.reshape((3,3,4))
>>>
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]

 [[24 25 26 27]
  [28 29 30 31]
  [32 33 34 35]]]
print(np.shape(b))
>>>
(3,3,4)

至此,我就臆斷爲,輸出結果爲(片,行,列)
所以就導致我在對圖片img使用shape()的時候,一臉懵比….

import numpy as np
import cv2

img=cv2.imread("...")
print(np.shape(img))
>>>
(768, 1024, 3)

至此,徹底懵比….768片???圖片才3列???
帶着這個問題又去尋找圖片矩陣的相關知識
兜兜轉轉
最後回來通過

import numpy as np
import cv2
from PIL import Image

im=Image.open('../test_pic/dog.jpg')
print(im.size)
>>>
(1024,768)

開始逐漸確定shape圖片的前兩個參數是行列
結果,就在我把書翻到下一頁,看到圖片參數,這回徹底確定了
總結一下:
自定義矩陣的參數,沒有錯
圖片的參數,沒有錯
網上的解釋,也沒有錯,但都是單獨對一個方面進行的解釋
雖然都是shape函數的結果,但是並不可相提並論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章