Python:图像处理中img[:,:,::

您所在的位置:网站首页 python中randint代表什么 Python:图像处理中img[:,:,::

Python:图像处理中img[:,:,::

#Python:图像处理中img[:,:,::| 来源: 网络整理| 查看: 265

我们经常在图像预处理中会看到类似如下代码

img = cv2.imread("img_path") img = img[:,:,::-1].transpose(2, 0, 1)

上述两句到底是什么含义呢?我们今天就来解决这个问题。

首先需要明白一点,我们通过cv2读图片时,数据读取的通道顺序是bgr,并且是height, width, channel的排列方式。

所以切开上述第二行代码来看:

img[:,:,::-1]也就是我们任意不改变width维的方式,也不改变height维的方式,仅仅改变channel维的方式,并且是倒序排列,原本的bgr排列方式经过倒序就变成了rgb的通道排列方式。

第二个transpose我们也经常会在caffe和pytorch中用到,因为这两个的输入顺序NxCxHxW,我们将图片从HxWxC改为CxHxW的形式。

拓展:如果img[::-1, :, :]其实是对图片进行上下翻转, img[:,::-1,:]是对图像进行左右翻转

一个小小的代码实例 a = np.array([[[0, 1], [1, 2], [2, 3]], [[3, 4], [4, 5], [5, 6]]]) print(a) [[[0 1] [1 2] [2 3]] [[3 4] [4 5] [5 6]]] b = a[:,:,::-1] print(b.shape) (2, 3, 2) print(b) [[[1 0] [2 1] [3 2]] [[4 3] [5 4] [6 5]]]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3