关于permute后,数据信息是否会混乱的问题。

问题:当数据由233,permute变为332后,数据内容是否会混乱呢?

答:当前是单独有x的分量33,y的分量33。将两个分量进行拼接得到:233的形式。此时使用permute 将其改为332的形式,是不会改变数据形式的。最终相当于是有3*3个[x,y]的坐标形式,并且x会和对应位置的y进行组合。只需要理解每个维度上代表的含义即可,不需要关注具体数据的变化。

以下为可能的代码示例:

# 原始数据:2(x/y分量) × 3(y坐标) × 3(x坐标)
x_component = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]    # x方向运动
y_component = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]  # y方向运动
data = np.array([x_component, y_component])  # shape (2, 3, 3)
data_permuted = np.transpose(data, (2, 1, 0))  # shape (3, 3, 2)

此回答,同样可以解释为什么 图像是H* W* C形式,改变形式为 C* H* W后,仍然可以正常显示图像,不会造成像素值混乱。

数据存储顺序的变化不会丢失信息,但需要正确解释维度含义。只需要宏观的理解现在第一个维度是代表高度,第二个代表宽度,第三个代表通道数即可,不用关注具体的数据变化。

  1. H* W*C(常见于OpenCV、Matplotlib)
    维度顺序:行(Height)× 列(Width)× 通道(Channels)。

物理意义:

每个像素点 (y, x) 是一个长度为 C 的向量(如RGB图像的 [R,G,B])。

例如 image[100, 200, 0] 表示第100行、第200列的红通道值。

  1. CHW(常见于PyTorch/TensorFlow)
    维度顺序:通道(Channels)× 行(Height)× 列(Width)。

物理意义:

所有像素的红通道排在第一个“二维矩阵”,绿通道在第二个,蓝通道在第三个。

例如 image[0, 100, 200] 表示红通道的第100行、第200列的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超好的小白

没体验过打赏,能让我体验一次吗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值