function [imgMapU, imgMapV] = func_flowJecobiSolver(Ix,Iy,It,lambda,iter)
waitBarX = waitbar(0,'Solving Optical Flow Using Jecobi Solver');
%% Initialization
matSize = size(Ix);
imgMapU = zeros(matSize); imgMapV = zeros(matSize);
lambdaMat = ones(matSize) * lambda; % Create lambda matrix for each element
avgMask = [0, 1/4, 0; 1/4, 0, 1/4; 0, 1/4, 0]; % Averate Mask for u-bar and v-bar
targetFitRate = 0.90; % Set target fit rate
solverEqu = 1; % Set solver; 0 for original solver from paper, 1 for drived equations
if iter > 0 % Select iterator mode, > 0 for constant iteration, = 0 for constant fit rate
for iteration = 1: iter
%% Get Average of 4 Pixel Connectivity
uBar = conv2(imgMapU,avgMask,'same');
vBar = conv2(imgMapV,avgMask,'same');
%% Solve for u and v
if solverEqu == 0
imgMapU_tmp = uBar - (Ix .* (Ix .* uBar + Iy .* vBar + It)) ./ (lambdaMat.^2 + Ix .^2 + Iy .^2);
imgMapV_tmp = vBar - (Iy .* (Ix .* uBar + Iy .* vBar + It)) ./ (lambdaMat.^2 + Ix .^2 + Iy .^2);
elseif solverEqu == 1
imgMapU_tmp = (4 * lambdaMat .* uBar - Ix .* Iy .* imgMapV - Ix .* It) ./ (Ix .^ 2 + 4 * lambdaMat);
imgMapV_tmp = (4 * lambdaMat .* vBar - Ix .* Iy .* imgMapU - Iy .* It) ./ (Iy .^ 2 + 4 * lambdaMat);
end
%% Update previous map
imgMapU = imgMapU_tmp; imgMapV = imgMapV_tmp;
waitbar((iteration/iter), waitBarX,'Solving Optical Flow Using Jecobi Solver');
end
else
while(1)
%% Get Average of 4 Pixel Connectivity
uBar = conv2(imgMapU,avgMask,'same');
vBar = conv2(imgMapV,avgMask,'same');
%% Solve for u and v
imgMapU_tmp = uBar - (Ix .* (Ix .* uBar + Iy .* vBar + It)) ./ (lambdaMat.^2 + Ix .^2 + Iy .^2);
imgMapV_tmp = vBar - (Iy .* (Ix .* uBar + Iy .* vBar + It)) ./ (lambdaMat.^2 + Ix .^2 + Iy .^2);
fitRate = sum(sum((imgMapU == imgMapU_tmp) + (imgMapV == imgMapV_tmp) == (ones(matSize) * 2)))/(matSize(1)*matSize(2));
if fitRate >= targetFitRate % Terminate when fit rate larger than 98%
break; % Fit: Value does not change between two iterations
else
%% Update previous map
imgMapU = imgMapU_tmp; imgMapV = imgMapV_tmp;
end
waitbar((fitRate/targetFitRate), waitBarX,'Solving Optical Flow Using Jecobi Solver');
end
end
close(waitBarX);
end
没有合适的资源?快使用搜索试试~ 我知道了~
matlab-基于Jecobi-Solver光流提取算法的目标人物检测matlab仿真-源码
共8个文件
pgm:4个
m:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
3星 · 超过75%的资源 3 下载量 62 浏览量
2021-09-30
17:33:07
上传
评论
收藏 163KB RAR 举报
温馨提示
matlab_基于Jecobi-Solver光流提取算法的目标人物检测matlab仿真_源码
资源推荐
资源详情
资源评论
收起资源包目录
matlab_基于Jecobi-Solver光流提取算法的目标人物检测matlab仿真_源码.rar (8个子文件)
matlab_基于Jecobi-Solver光流提取算法的目标人物检测matlab仿真_源码
src
lib
cls_imgGradient.m 816B
func_flowJecobiSolver.m 3KB
func_hsOpticalFlow.m 830B
data
seq2-image1.pgm 77KB
seq1-image2.pgm 75KB
seq2-image2.pgm 77KB
seq1-image1.pgm 75KB
Runme.m 2KB
共 8 条
- 1
资源评论
- weixin_432181642022-05-18根本没有源码,没卵用,全都能下载,就四篇文献而已
- skyfly000_1112022-03-27用户下载后在一定时间内未进行评价,系统默认好评。
mYlEaVeiSmVp
- 粉丝: 1880
- 资源: 19万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功