matlab練習程序(隨機游走圖像)


隨機游走類似布朗運動,就是隨機的向各個方向走吧。

雖然代碼沒什么技術含量,不過產生的圖像實在太漂亮了,所以還是貼上來吧。

產生的圖像:

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM