如何使用MATLAB提取某一图片的R\G\B的某个通道信息?

MATLAB中数组的类型有:
double 、single 、logical 、uint8 、uint16

single

single:单精度变量存储为 single 数据类型(类)的 4 个字节(32 位)浮点值。

double

double 是 MATLAB® 中的默认数值数据类型(类),它可为大多数计算任务提供足够的精度。数值变量自动存储为 64 位(8 字节)双精度浮点值。
double 类型的负数的范围在 -1.79769×10308 到 -2.22507×10-308 之间,正数的范围在 2.22507×10-308 到 1.79769×10308 之间。

logical

将数值转换为逻辑值

uint8

8 位无符号整数数组,变量存储为 1 个字节(8 位)的无符号整数。

uint16

16 位无符号整数数组,变量存储为 2 个字节(16 位)的无符号整数

如何取出多为数据中的某一维?

例如一个三维数组为:
a=[1,2,3,4,5;6,7,8,9,1;1,2,3,4,5]
a =
1 2 3 4 5
6 7 8 9 1
1 2 3 4 5
如果取出其第二行为b向量,则可使用:
b=a(2,:)
b =
6 7 8 9 1
则已取出第二行,其中“:”的作用相当于从第一列遍历到最后一列。同理要取出列则可用:
b=a(:,2),便可以取出第二列

MATLAB中 (:,1:2:end,:) 表示

首先了解到 end 表示最后一行或者最后一列
看到类似的指令不要害怕,虽然很长,看着也很复杂。该操作中基本的结构还是以逗号为分界间隔不同的维度,这里逗号前是行,逗号后是列。
B = A(1:2:end,:) 是B取A的所有列,从第一行取到最后一行,步长为2。也就是第一行、第三行、第五行……一直取到最后一行。
C = A(:,end: -1:1) 是C取A的所有行,从最后一列开始取值,倒序一直到第一行。

posted @ 2022-09-13 10:15  森是林上木  阅读(420)  评论(0)    收藏  举报