晚上好,
我想影响矩阵B的值到其他不同的矩阵C。
然后我尝试这段代码:
B=imread("deformation_somb.jpg");
xc=pixel_x1;
yc=pixel_y1;
% where [nr,nc,channels]= size([B])
% pixel_x1=(nc/2) & pixel_y1=(nr/2);
j=nr-yc;
i=xc;
i_c=1;
j_c=1;
C_horizontale_droite=[];
C_horizontale_gauche=[];
C_verticale_haut=[];
C_verticale_bas=[];
i_nouveau_h=i;
i_nouveau_b=i;
j_nouveau_d=j;
j_nouveau_g=j;
while(i_nouveau_h!=nr-1 || i_nouveau_b!=0 || j_nouveau_g!=0 || j_nouveau_d!=nc-1)
C_horizontale_gauche(1,j_c,:)=B(i,j_nouveau_g,:);
C_horizontale_droite(1,j_c,:)=B(i,j_nouveau_d,:);
C_verticale_haut(1,j_c,:)=B(i_nouveau_h,j,:);
C_verticale_bas(1,j_c,:)=B(i_nouveau_b,j,:);
i_nouveau_h = i_nouveau_h+1;
i_nouveau_b = i_nouveau_b-1;
j_nouveau_d = j_nouveau_d+1;
j_nouveau_g = j_nouveau_g-1;
j_c=j_c+1;
endwhile
distance_pixel_gauche_centre = find(C_horizontale_gauche=C_horizontale_droite!=0)
distance_pixel_droite_centre = find(C_horizontale_droite=C_horizontale_gauche!=0)
distance_pixel_haut_centre= find(C_verticale_haut=C_verticale_bas!=0)
distance_pixel_bas_centre= find(C_verticale_bas=C_verticale_haut!=0)
但是对于矩阵的第一个影响:
C_horizontale_gauche(1,j_c,:)=B(i,j_nouveau_g,:);
我有一条错误消息:
error : LG : Subscript indices must be either positive integers less than 2^31 or logicals.
然后我验证他们是积极的指数。我举个例子:
对于700 * 700 RGB的图像,nr = nc = 700。
然后j = 700-350 = 350,i = 350
所以,j_nouveau_g=350
。
因此,第一个表达式应该发送到Octave这个:
`C_horizontale_gauche(1,1,:)=B(350,350,:)`
......嗯..为什么octave发给我一个错误?
谢谢你的答案。
最好的问候
于连