mis*_*tor 6 syntax matlab image-processing
a = imread('autumn.tif');
a = double(a);
[row col dim] = size(a);
red = a(:, :, 1);
green = a(:, :, 2);
blue = a(:, :, 3);
Run Code Online (Sandbox Code Playgroud)
:最后三行中的冒号是什么意思?(上面的片段来自Dhananjay Theckedath的"图像处理".)
Jon*_*nas 19
:,在这种情况下意味着'所有'.
red = a(:,:,1)
Run Code Online (Sandbox Code Playgroud)
相当于
red = a(1:end,1:end,1)
Run Code Online (Sandbox Code Playgroud)
其中end由Matlab自动替换为相应维度中的元素数量.
那么如果a是一个23乘55乘3的阵列,
a(:,:,1)
Run Code Online (Sandbox Code Playgroud)
是
a(1:23, 1:55, 1)
Run Code Online (Sandbox Code Playgroud)
这意味着,这将占用所有行,所有列都来自第一个"平面" a.由于RGB图像由红色,绿色和蓝色组成plane(按此顺序),因此a(:,:,1)是图像的红色成分.