【Matlab】函数imread的返回值

迁移自CSDN:【Matlab】函数imread的返回值

matlab图像的读入后的原点在左上角,从1开始,不是0;
imread读取图像返回的是三维数组

1
I= imread('abc.jpg')

返回值是3个数组:I( : , : ,1) I( : , : ,2) I( : , : ,3) 这3个数组中应该存放的是RGB的值

示例代码:

wi.jpg是一个大小为12*10(12行,10例)的图像:

wi.jpg是一个大小为12*10(12行,10例)的图像。

1
2
3
4
I = imread('wi.jpg');
[m,n]=size(I)
I
imshow(I);

结果:

1
2
3
4
5
6
m =
12
n =
30

这里n为30例是因为,RGB是三个通道,相当于三个相片叠加起来成为彩色图片的,存储的时候例数就是10*3=30

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
I(:,:,1) =
36 36 42 55 66 75 81 86 85 92
15 30 35 106 39 34 30 74 85 87
14 26 13 129 136 11 21 26 72 112
11 19 1 132 229 172 48 54 50 209
24 103 199 177 122 181 216 51 47 100
255 255 255 119 62 21 162 248 66 28
223 249 255 196 180 166 152 220 248 147
75 255 255 246 160 131 124 38 217 180
54 193 251 227 162 209 244 255 161 42
34 0 238 148 221 240 246 109 33 54
40 31 17 251 238 216 59 43 48 53
34 37 16 65 144 24 58 57 48 41
I(:,:,2) =
26 23 28 37 44 49 52 55 51 58
8 21 25 92 21 12 4 45 54 57
13 25 10 122 126 0 3 4 49 86
11 19 0 128 221 163 35 39 31 190
19 98 194 170 112 171 205 39 36 86
249 252 251 109 52 11 152 239 57 20
212 239 250 187 171 157 146 214 242 141
66 252 252 240 154 125 120 34 211 174
53 191 249 226 161 208 242 255 158 39
38 1 242 152 224 241 247 109 33 54
46 37 23 255 244 221 64 45 51 54
42 46 25 74 150 31 63 62 50 43
I(:,:,3) =
17 15 19 27 33 36 34 34 24 30
0 14 16 83 11 0 0 27 33 33
9 20 3 114 117 0 0 0 35 73
11 17 0 125 218 158 29 32 25 183
23 102 200 177 121 179 209 41 34 83
254 255 255 118 61 20 160 242 58 18
216 240 251 188 172 158 146 214 244 143
67 253 253 240 154 125 119 33 211 174
51 192 252 231 167 213 245 253 153 32
37 0 245 155 229 245 249 107 25 44
46 37 23 255 242 217 60 40 44 48
44 45 24 69 146 24 57 56 45 38

可以看到读入图像到I中,输出I后,给出了3个数组,分别对应R , G , B 至于哪个数组是R,哪个数组是G,哪个数组是B,我就不知道了。