Arrays 组合阵列

Arrays 组合阵列,arrays,matlab,image-processing,pixel,Arrays,Matlab,Image Processing,Pixel,我已经写了一段代码,我几乎被卡住了。 在下面的代码中,我将整个图像分割为一个3*3的块。 您可以看到的每个子(1-8)都是,假设我仅在该子(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(

我已经写了一段代码,我几乎被卡住了。 在下面的代码中,我将整个图像分割为一个3*3的块。 您可以看到的每个子(1-8)都是,假设我仅在该子(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);

串联的语法如下所示:

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
取自

我还做了一个基本示例,定义了第一个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

希望它能帮助你理解它是如何工作的

如果您使用了我发布的方法,但仍然创建了4d矩阵,只需执行以下操作:

mother1 = permute( mat4d, [ 1 3 2 4 ] );
mother1 = reshape( mother1, [ pd_rv pd_cv ] );
但是
pd_rv
pd_cv
应该用
floor
来计算,而不是用
ceil
来计算,不是吗