2012-04-02 105 views
1

我写了一个代码,我几乎卡住了。 在下面的代码中,我已将完整图像分割成3 * 3块。 你可以看到每个孩子(1-8),说我只改变他们在那个孩子(1-8)阵列。 是否有这些阵列相结合,得到完整的图像回来,我已经做了结合阵列

pd_x=imread(name_doc); 
[pd_m,pd_n]=size(pd_x); 
di_m=pd_m; 
di_n=pd_n; 

pd_rv=ceil(pd_m/3); 
pd_cv=ceil(pd_n/3); 

mother1=pd_x(1:pd_rv,1:pd_cv); 
child1=pd_x(1:pd_rv,pd_cv:(pd_cv+pd_cv)); 
child2=pd_x(1:pd_rv,(pd_cv+pd_cv):pd_n); 

child3=pd_x(pd_rv:(pd_rv+pd_rv),1:pd_cv); 
child4=pd_x(pd_rv:(pd_rv+pd_rv),pd_cv:(pd_cv+pd_cv)); 
child5=pd_x(pd_rv:(pd_rv+pd_rv),(pd_cv+pd_cv):pd_n); 

child6=pd_x((pd_rv+pd_rv):pd_m,1:pd_cv); 
child7=pd_x((pd_rv+pd_rv):pd_m,pd_cv:(pd_cv+pd_cv)); 
child8=pd_x((pd_rv+pd_rv):pd_m,(pd_cv+pd_cv):pd_n); 

回答

1

用于级联的语法变更的方法(母亲&孩子1-8)如下:

A = [12 62 93 -8 22; 16 2 87 43 91; -4 17 -72 95 6] 
A = 
    12 62 93 -8 22 
    16  2 87 43 91 
    -4 17 -72 95  6 

http://www.mathworks.com/help/techdoc/math/f1-84864.html

两者我也做了一个简单的例子,首先定义v,V2和V3:

>> v 

v = 

    1  2 

>> v2 

v2 = 

    3  4 

>> v3 

v3 = 

    5  6 

我做下面的级联,其结果将是...

>> m = [v v2 v3; v3 v2 v]; 
>> m 

m = 

    1  2  3  4  5  6 
    5  6  3  4  1  2 

希望它可以帮助你了解它是如何工作!

+0

谢谢你队友...帮我疯了...... – Jay 2012-04-02 19:47:37

1

如果您使用我已on this answer,而且至今四维矩阵创建的方法,只是这样做:

mother1 = permute(mat4d, [ 1 3 2 4 ]); 
mother1 = reshape(mother1, [ pd_rv pd_cv ]); 

pd_rvpd_cvfloor来计算,而不是与ceil,不该”他们?