Arrays 组合阵列
我已经写了一段代码,我几乎被卡住了。 在下面的代码中,我将整个图像分割为一个3*3的块。 您可以看到的每个子(1-8)都是,假设我仅在该子(1-8)数组中更改它们。 有没有一种方法可以将这些数组(母子1-8)结合起来,用我已经做过的修改得到完整的图像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(
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
来计算,不是吗