2013-03-15 65 views
1

有人可以帮助我如何解决这个问题。在Matlab中偏度的尺寸

grayImage=dicomread('028tm.R.dcm'); 
sx=32; 
sy=32; 
theta=[0 pi/4 2*pi/4 3*pi/4 4*pi/4 5*pi/4 6*pi/4 7*pi/4]; 

gamma=1; 
psi=0; 
sigma=6; % ????12 
lambda=[5 6 7 8 9 7]; 

# Creating 40 Gabor Filters 
G = cell(5,8); 
for i = 1:5 
    for j = 1:8 
    G{i,j}=zeros(65,65); 
    end 
end 
for i = 1:5 
    for j = 1:8 
    f=1/lambda(i);  

    [T,gabout] = gaborfilter1(grayImage,sx,sy,f,theta(j)); 
    u{i,j}=mean2(gabout); 
    del{i,j}=std2(gabout); 
    skew{i,j} =skewness(gabout); 
    sk=[skew{:,:}]; 
    std=[u{:,:}]; 
    mn=[del{:,:}]; 
    disp(sk)    
    end 
end 

这是我将显示我的工作区。

mn <1x40 double> 
sk<1x10280 double> 
std<1x40 double> 

为什么SK(偏度的值)是1X10280双?????它应该是1x40就像标准偏差和平均值。如何使sk(偏斜度)为1x40

希望有人能帮助我。

+0

我想这是因为'mean2'和'std2'返回标量,而'skewness'返回一个向量。 'grayImage'的横向维度是什么?这不是257像素? – 2013-03-15 11:14:23

+0

水平尺寸?你的意思是grayImage的大小吗? grayImage:<236x257 uint16>。 – user2157806 2013-03-15 11:17:17

+0

正如我怀疑! – 2013-03-15 11:34:22

回答

2

您的问题是mean2std2整个图像上进行操作,但skewness列的图像工作。你应该定义一个新的功能

function sk = skewness2(X) 
    sk = skewness(X(:)); 
end 

并用它来代替skewness

+0

非常感谢你的回答,我明白了......谢谢 – user2157806 2013-03-15 11:48:01