📄 main.m
字号:
A=squeeze(imread('smoker','gif','frames','all'));
Asize=size(A);
A1=A(:,:,1);
A2=A(:,:,2);
alpha=120;
loop=400;
LapH = [1/12,1/6,1/12
1/6,0,1/6
1/12,1/6,1/12];
Ex=zeros(Asize(1)-1,Asize(2)-1);
Ey=Ex;
Et=Ex;
Temp1=Ex;
for i=1:(Asize(1)-1)
for j=1:(Asize(2)-1)
Ex(i,j)=((A1(i+1,j)+A1(i+1,j+1)+A2(i+1,j)+A2(i+1,j+1))-(A1(i,j)+A1(i,j+1)+A2(i,j)+A2(i,j+1)))/4;
Ey(i,j)=((A1(i,j+1)+A1(i+1,j+1)+A2(i,j+1)+A2(i+1,j+1))-(A1(i,j)+A1(i+1,j)+A2(i,j)+A2(i+1,j)))/4;
Et(i,j)=((A2(i,j)+A2(i+1,j)+A2(i,j+1)+A2(i+1,j+1))-(A1(i,j)+A1(i+1,j)+A1(i,j+1)+A1(i+1,j+1)))/4;
Temp1(i,j)=alpha^2+Ex(i,j)^2+Ey(i,j)^2;
end
end
U=zeros(Asize(1)-1,Asize(2)-1);
V=U;
for loopCount=0:loop
Ulap=imfilter(U,LapH,'replicate');
Vlap=imfilter(V,LapH,'replicate');
for i=1:(Asize(1)-1)
for j=1:(Asize(2)-1)
Temp2=Ex(i,j)*Ulap(i,j)+Ey(i,j)*Vlap(i,j)+Et(i,j);
U2(i,j)=Ulap(i,j)-Ex(i,j)*Temp2/Temp1(1,j);
V2(i,j)=Vlap(i,j)-Ey(i,j)*Temp2/Temp1(1,j);
end
end
U=U2;
V=V2;
end
FlowSpeed=sqrt(U.^2+V.^2);
imagesc(FlowSpeed);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -