代做matlab和similink仿真,MATLAB代做|FPGA代做|simulink代做--Horn-Schunk算法的matlab仿真...

function [u, v] = HornSchunck();

ite=100;

alpha=25;

im1=imread('MobileCalendar034.bmp');

im2=imread('MobileCalendar035.bmp');

im1=rgb2gray(im1);

im2=rgb2gray(im2);

im1=double(im1);

im2=double(im2);

im1 = smoothts(im1, 'g', 5);

im2 = smoothts(im2, 'g', 5);

fx = conv2(im1,0.25* [-1 1; -1 1],'same') + conv2(im2, 0.25*[-1 1; -1 1],'same');

fy = conv2(im1, 0.25*[-1 -1; 1 1], 'same') + conv2(im2, 0.25*[-1 -1; 1 1], 'same');

ft = conv2(im1, 0.25*ones(2),'same') + conv2(im2, -0.25*ones(2),'same');

u = zeros(size(im1));

v = zeros(size(im2));

kernel_1=[1/12 1/6 1/12;1/6 0 1/6;1/12 1/6 1/12];

for i=1:ite

uAvg=conv2(u,kernel_1,'same');

vAvg=conv2(v,kernel_1,'same');

u= uAvg - ( fx .* ( ( fx .* uAvg ) + ( fy .* vAvg ) + ft ) ) ./ ( alpha^2 + fx.^2 + fy.^2);

v= vAvg - ( fy .* ( ( fx .* uAvg ) + ( fy .* vAvg ) + ft ) ) ./ ( alpha^2 + fx.^2 + fy.^2);

end

figure;

rSize=1;

scale=2;

imshow(im1,[0 255]);

hold on;

for i=1:size(u,1)

for j=1:size(u,2)

if floor(i/rSize)~=i/rSize || floor(j/rSize)~=j/rSize

u(i,j)=0;

v(i,j)=0;

end

end

end

quiver(u, v, scale, 'color', 'y', 'linewidth', 1);

set(gca,'YDir','reverse');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值