1 path = 'E:\\pythoncodes\\learningopenCV\\read_image.jpg' 2 img = cv2.imread(path,cv2.IMREAD_COLOR) 3 print(img.shape)
cv2.imread(path,讀取方式)
1.讀取方式分為:cv2.IMREAD_COLOR:讀入一副彩色圖片;cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖片;cv2.IMREAD_UNCHANGED:讀入一幅圖片,並包括其alpha通道。
2.該函數的返回值是一個三維ndarray數組,上面的程序運行結果如下圖:
然后再來看一下圖片read_image.jpg的屬性信息,如下圖:
仔細觀察不難看出,程序返回的元組的前兩個值220,280分別為圖片的“高度”和“寬度”。剩下的那個數3,應該是代表每個像素點是由BGR三個元素組成的。
import cv2 import numpy as np arr = np.arange(15) print(len(arr)) arr1 = arr.reshape(5,3) print(arr1) print(len(arr1)) arr2 = np.array([1,2]) print(arr2) print(arr2.size) img = cv2.imread('C:\\Users\\96294\\Pictures\\Saved Pictures\\1.jpg', cv2.IMREAD_COLOR) print(isinstance(img, np.ndarray)) if isinstance(img, np.ndarray): #判斷圖片是否讀取成功 print(len(img)) cv2.imshow('pic',img) cv2.waitKey(0)
img是<class 'numpy.ndarray'>類型的,img.shape是一個包含三個元素的元祖,img.data是<class 'memoryview'>類型的。
numpy中是這樣解釋ndarray.data的:
data
Python buffer object pointing to the start of the array's data.
所以我們可以將ndarray.data理解為一個指向存儲array數組數據的內存的一個指針。