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数组数据的内存的一个指针。