隨機游走類似布朗運動,就是隨機的向各個方向走吧。
雖然代碼沒什么技術含量,不過產生的圖像實在太漂亮了,所以還是貼上來吧。
產生的圖像:
matlab代碼如下:
clear all;close all;clc n=70000; %游走的步數。也是圖像中像素個數,有些位置可能重復,所以白像素小於等於n x=0; %初始x坐標 y=0; %初始y坐標 pix=zeros(n,2); %游走產生的像素坐標 neighbour=[-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1]; %當前像素鄰域 for i=1:n r=floor(1+8*rand()); %八鄰域隨機選一個來走 y=y+neighbour(r,1); %y方向游走 x=x+neighbour(r,2); %x方向游走 pix(i,:)=[y x]; %保存坐標 end miny=min(pix(:,1)); %圖像坐標不可能為負,所以找最小值再整體提升為正 minx=min(pix(:,2)); %同上 pix(:,1)=pix(:,1)-miny+1; %像素坐標整體變為正 pix(:,2)=pix(:,2)-minx+1; maxy=max(pix(:,1)); %找最大坐標值,為開辟圖像做准備 maxx=max(pix(:,2)); img=zeros(maxy,maxx); %根據maxy、maxx產生圖像 for i=1:n %將游走的值賦給圖像 img(pix(i,1),pix(i,2))=1; end imshow(img)