2012-04-02 107 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,不該」他們?