由於對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函數的結果,但是並不可相提並論