2012-04-02 8 views
1

Ich habe einen Code geschrieben und ich bin ziemlich fest. Im folgenden Code habe ich das komplette Bild in einen 3 * 3 Block aufgeteilt. Jedes der Kind (1-8), die Sie sehen können, sagen, ich ändere sie nur in diesem Kind (1-8) Array. Gibt es eine Methode, um diese Array (Mutter & Kind 1-8) zu kombinieren, um das vollständige Bild wieder mit der Änderung zu erhalten, die ich schon gemacht habekombiniert die Arrays

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); 

Antwort

1

Die Syntax für die Verkettung ist die folgende:

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 

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

ich habe auch ein grundlegendes Beispiel gemacht, zunächst v definiert, v2 und v3:

>> v 

v = 

    1  2 

>> v2 

v2 = 

    3  4 

>> v3 

v3 = 

    5  6 

ich die folgende Verkettung tun, wird das Ergebnis sein ...

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

m = 

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

Hoffe, es hilft Ihnen zu verstehen, wie es funktioniert !!

+0

Danke Kumpel ... half mir wie verrückt ... – Jay

1

Wenn Sie die Methode ich on this answer gepostet habe und hat immer noch die 4d-Matrix erstellt, gerade dies zu tun:

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

Aber pd_rv und pd_cv soll mit floor, und nicht mit ceil, shouldn‘berechnet werden t sie?