【物理应用】光流场

​function uvo = estimate_flow_demo(method, iSeq, seqName, varargin)%ESTIMATE_FLOW_DEMO   Optical flow estimation demo program%% output UV is an M*N*2 matrix. UV(:,:,1) is the horizontal flow and%   UV(:,:,2) is the vertical flow.%% Example% -------% uv = estimate_flow_demo; or estimate_flow_demo;% reads the color RubberWhale sequence and uses default parameters and% default method "Classic+NL-Fast" % % same as% uv = estimate_flow_demo('classic+nl-fast');%% uv = estimate_flow_demo('classic+nl-fast', 4, 'middle-other');%% uv = estimate_flow_demo('classic+nl-fast', 4, 'middle-other', 'lambda', 3, 'pyramid_levels', 5);% takes user-defined parameters %% Method can be%   'classic+nl-fast' (default)  'classic+nl' 'classic+nl-full'%   'classic++'  'classic-c'  'classic-l'/'ba' 'hs'%% iSeq can ben 1 to 12: selects the sequence in the following cell arrays to process% % training data% SeqName = 'middle-other' %           {'Venus', 'Dimetrodon',   'Hydrangea',    'RubberWhale',...%            'Grove2', 'Grove3', 'Urban2', 'Urban3', ...%            'Walking', 'Beanbags',     'DogDance',     'MiniCooper'};% % test data% SeqName = 'middle-eval' %           {'Army',  'Mequon', 'Schefflera', 'Wooden',  'Grove', 'Urban', ...%            'Yosemite',  'Teddy', 'Basketball',  'Evergreen',  'Backyard',  'Dumptruck'};% % 'lambda'                trade-off (regularization) parameter; larger produces smoother flow fields % 'sigma_d'               parameter of the robust penalty function for the spatial term% 'sigma_s'               parameter of the robust penalty function for the data term% 'pyramid_levels'        pyramid levels for the quadratic formulation; default is automatic % 'pyramid_spacing'       downsampling ratio up each pyramid level for the quadratic formulation; default is 2% 'gnc_pyramid_levels'    pyramid levels for the non-quadratic formulation; default is 2% 'gnc_pyramid_spacing'   downsampling ratio up each pyramid level for the non-quadratic formulation; default is 1.25%%% References:% -----------% Sun, D.; Roth, S. & Black, M. J. "Secrets of Optical Flow Estimation and%   Their Principles" IEEE Int. Conf. on Comp. Vision & Pattern Recognition, 2010  % % Sun, D.; Roth, S. & Black, M. J. "A Quantitative Analysis of Current%   Practices in Optical Flow Estimation and The Principles Behind Them" %   Technical Report Brown-CS-10-03, 2010   %% Authors: Deqing Sun, Department of Computer Science, Brown University% Contact: [email protected]% $Date: $% $Revision: $%% Copyright 2007-2010, Brown University, Providence, RI. USA% %                          All Rights Reserved% % All commercial use of this software, whether direct or indirect, is% strictly prohibited including, without limitation, incorporation into in% a commercial product, use in a commercial service, or production of other% artifacts for commercial purposes.     %% Permission to use, copy, modify, and distribute this software and its% documentation for research purposes is hereby granted without fee,% provided that the above copyright notice appears in all copies and that% both that copyright notice and this permission notice appear in% supporting documentation, and that the name of the author and Brown% University not be used in advertising or publicity pertaining to% distribution of the software without specific, written prior permission.        %% For commercial uses contact the Technology Venture Office of Brown University% % THE AUTHOR AND BROWN UNIVERSITY DISCLAIM ALL WARRANTIES WITH REGARD TO% THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND% FITNESS FOR ANY PARTICULAR PURPOSE.  IN NO EVENT SHALL THE AUTHOR OR% BROWN UNIVERSITY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL% DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR% PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS% ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF% THIS SOFTWARE.if (~isdeployed)    addpath(genpath('utils'));endif nargin < 1    method = 'classic+nl-fast';    iSeq   = 4;    seqName = 'middle-other';    %seqName = 'middle-eval';elseif nargin == 1    iSeq   = 4;    seqName = 'middle-other';end;[im1, im2, tu, tv] = read_flow_file(seqName, iSeq);uv = estimate_flow_interface(im1, im2, method, varargin);% Display estimated flow fieldsfigure; subplot(1,2,1);imshow(uint8(flowToColor(uv))); title('Middlebury color coding');subplot(1,2,2); plotflow(uv);   title('Vector plot');if sum(~isnan(tu(:))) > 1    [aae stdae aepe] = flowAngErr(tu, tv, uv(:,:,1), uv(:,:,2), 0); % ignore 0 boundary pixels    fprintf('\nAAE %3.3f average EPE %3.3f \n', aae, aepe);    end;% Uncomment below and change FN to save the flow fields% if ~exist(['result/' seqName], 'file');%     mkdir(['result/' seqName]);% end;% fn  = sprintf('result/%s/estimated_flow_%03d.flo', seqName, iSeq);% writeFlowFile(uv, fn);% Uncomment below to read the save flow field% uv = readFlowFile(fn);if nargout == 1    uvo = uv;end;% Uncomment below  to remove 'utils/' to your%   matlab search path% rmpath(genpath('utils'));

往期回顾>>>>>>

【模式识别】Matlab指纹识别

【图像处理】LSB水印技术

matlab自动识别银行卡号

【基础教程】MATLAB导出高清晰图片

无参考图像质量评价之基于多特征的增强图像质量评价

发布了39 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_34763204/article/details/105184269
今日推荐