matlab中size/length/numel的用法 并利用判断是否为灰度图像

来源:互联网 发布:私家车拼车软件 编辑:程序博客网 时间:2024/05/21 22:27

size:获取数组的行数和列数

length:数组长度(即行数或列数中的较大值)

numel:元素总数。

s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时数组的行数,第二个元素是数组的列数。

[r,c]=size(A),当有两个输出参数时,size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量。

如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回数组的行数或列数。 其中r=size(A,1)该语句返回的时数组A的行数, c=size(A,2) 该语句返回的时数组A的列数。

n=numel(A)该语句返回数组中元素的总数。    

n=length(A):如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了max(size(A));如果A为空数组,则返回0;如果A是一个向量则返回A的长度。

n=max(size(A):若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非0维数。

 
zhu和44为彩色图片   12为灰度图像
 
vv=imread('D:\实验图片\zhu.jpg');
pp=imread('D:\实验图片\12.jpg');
gg=imread('D:\实验图片\44.jpg');
[a, b, c]=size(vv);

d=length(size(vv));
h=length(size(pp));
k=length(size(gg));

tt=size(pp);
[l, m, n]=size(gg) ;
[ll, mm, nn]=size(pp)

numel(size(vv))
numel(size(pp))
numel(size(gg))
 
运行结果为:

a =800
b = 600

c =   3


d =  3

h =2
k =3


tt =    1280        1024


l =  640

m =   670
n = 3

 

ll = 1280
mm =1024
nn =  1


ans =  3

ans = 2

ans =  3

 
%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,判断是否为灰度图像
% check to see if the image is a color image...
d = length(size(im));
if d==3
    image=double(rgb2gray(im));
elseif d==2
    image=double(im);
end
 
或者 numel(size(im))>2 为彩色图像
         numel(size(im))=2  为灰度图像
 
 
原创粉丝点击