CV2读取图片

cv2.imread()

现在我们使用cv2.imread()来读取一张照片,

image = cv2.imread('image_name.jpg')
image.shape
# output:(96, 64, 3)

image[0][0]
# output:
# array([175, 197,239], dtype=uint8)

可以看出output为(96, 64, 3),其中,96代表图片高度,64代表图片宽度,3代表通道为BGR。

我们查看一下image[0][0]数组,可以看出是 [175, 197,239]

 

cv2.cvtColor()

如果我们使用cv2.cvtColor(image, cv2.COLOR_BGR2RGB),来将BGR转换为RGB,

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image.shape
#output:(96, 63, 3)

image[0][0]
# output:
# array([239, 197, 175], dtype=uint8)

还是(96, 64, 3),只不过每组元素最里面的三位数字发生了转化。

我们查看一下image[0][0]数组,可以看出是 [239, 197, 175]

 

np.transpose()

当我们需要把这些数组输入神经网络的时候,我们还需要将格式由[h, w, c]转换为[c, h, w]。

这时我们可以使用:

image = np.transpose(image, [2, 0, 1])
image.shape
# output:(3, 96, 64)

# 如果要输入至pytorch,我们需要增加一个batch_size维度
image = np.expand_dims(image, axis=0)
image.shape
# output:(1, 3, 96, 64)

CV2读取图片_第1张图片

你可能感兴趣的:(CV2读取图片)