値が乱数で与えられる同心円で構成される画像を生成するプログラムを作成しました。
cx=20;cy=20;ix=40;iy=40;
[x,y]=meshgrid(-(cx-1):(ix-cx),-(cy-1):(iy-cy));
a=zeros(40,40);
x1=rand(1,20);
for j= 1:20
%%inner radius
R=j-1;
c1=((x.^2+y.^2)<=R^2);
n1=not(c1);
%%outer radius
R=j;
c2=((x.^2+y.^2)<=R^2);
rj=bitand(c2,n1);
rj=rj.*x1(1,j);
a=imadd(a,rj);
end
imshow(a)
問題は、リグが整然と動いているかのように連続した画像を取得したいということです。だから私は circshift 関数を採用し、私のコードは次のようになりました:
cx=20;cy=20;ix=40;iy=40;
[x,y]=meshgrid(-(cx-1):(ix-cx),-(cy-1):(iy-cy));
a=zeros(40,40);
x1=rand(1,20);
for i= 1:20
xc=circshift(x1,[1 i-1]);
%%inner radius
R=j-1;
c1=((x.^2+y.^2)<=R^2);
n1=not(c1);
%%outer radius
R=j;
c2=((x.^2+y.^2)<=R^2);
rj=bitand(c2,n1);
rj=rj.*xc(1,j);
a=imadd(a,rj);
end
imshow(a)
そしてプログラムは実行されません。誰でも私を助けてもらえますか?よろしくお願いします。