图像数组索引

1.三维数组的索引

参考:( NumPy 三维数组以及高维数组切片和索引_king52113141314的博客-CSDN博客_numpy三维数组索引https://blog.csdn.net/king52113141314/article/details/108405364?spm=1001.2014.3001.5506

三维数组的索引中,第一个维度是矩阵个数,第二个维度是行,第三个维度是列。

关于三维数组的[::-1]的倒序操作:

以下为例:

 

可以看到,将 [::-1]放在第一维,产生的效果是三个矩阵之间的倒序。

 将 [::-1]放在第二维,产生的效果是行的倒序

 将 [::-1]放在第二维,产生的效果是列的倒序

另外,关于[...,]的操作:

还是以a3为例,

可以看到,...相当于省略,省略了写出前两维,然后默认取所有第一维(个数)和第二维(行)的第1列数据。 

2.cv2.imread()

代码中经常看到 img = img[:, :, ::-1]这样的代码,解释说是BGR通道转化为RGB,并且网上查到有说  图像张量有三个维度,分别表示宽度、长度和颜色通道。image[:,:,::-1]的作用是对颜色通道把RGB转换成BGR,image[:, ::-1, :]的作用是把图像左右翻转,image[::-1, :, :]的作用是把图像上下颠倒。

图像张量有三个维度,分别表示宽度、长度和颜色通道似乎和我上面理解的三维数组的第一维代表个数,第二三维分别代表行列的情况不太一样。是因为张量和数组的索引机制不一样吗?

在验证这个问题之前,先要确认cv2.imread()读进来的数据是张量还是数组?

参考:【OpenCV 完整例程】01. 图像的读取(cv2.imread)_youcans的博客-CSDN博客_opencv读取图片

这篇文章给出了:

所以可以证明cv2.imread()读进来的确实是数组而不是张量,所以上面看到的阐述有误。而 三个维度分别表示宽度、长度和颜色通道是对的,因为图像读出来的数组是以[R,G,B],[R,G,B]这样三个三个的排列,所以原本理解为行的维度在这里是颜色通道,而这里的宽度相当于原本理解的矩阵个数。

 参考:cv2.imread()读取数据的详细过程_代码小白的成长的博客-CSDN博客_cv2.imread

3.三维张量的索引

关于张量的索引可以参考:深度学习——张量的索引、分片、合并及调整维度-拜师资源博客 (17baishi.com)http://blog.17baishi.com/14678/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值