gusucode.com > vision工具箱matlab源码程序 > vision/+vision/+internal/+buildable/opticalFlowLKBuildable.m
classdef opticalFlowLKBuildable < coder.ExternalDependency %#codegen % opticalFlowLKBuildable - encapsulate opticalFlowLK implementation library % Copyright 2012 The MathWorks, Inc. methods (Static) function name = getDescriptiveName(~) name = 'opticalFlowLKBuildable'; end function b = isSupportedContext(context) b = context.isMatlabHostTarget(); end function updateBuildInfo(buildInfo, ~) buildInfo.addIncludePaths({fullfile(matlabroot,'toolbox', ... 'vision','builtins','src','vision','include')} ); buildInfo.addSourcePaths({fullfile(matlabroot,'toolbox', ... 'vision','builtins','src','vision')}); buildInfo.addSourceFiles({'opticalFlowLKCore.cpp'}); buildInfo.addIncludeFiles({'vision_defines.h', ... 'opticalFlowLKCore_api.hpp', ... 'opticalFlowLK.hpp'}); end %------------------------------------------------------------------ % write all supported data-type specific function calls function [outVelReal, outVelImag] = ... opticalFlowLK_compute( ... tmpImageA, ImageB, ... pGradCC, pGradRC, pGradRR, pGradCT, pGradRT, ... NoiseThreshold ... ) coder.inline('always'); % add '#include "opticalFlowLKCore_api.hpp"' in <myfcn>.c coder.cinclude('opticalFlowLKCore_api.hpp'); % call function outVelReal = zeros(size(tmpImageA), 'like', pGradCC); outVelImag = zeros(size(tmpImageA), 'like', pGradCC); pInRows = int32(size(tmpImageA,1)); pInCols = int32(size(tmpImageA,2)); fcnName = ['MWCV_OpticalFlow_LK_' class(tmpImageA)]; coder.ceval(fcnName,... coder.ref(tmpImageA), ... coder.ref(ImageB), ... coder.ref(outVelReal), ... coder.ref(outVelImag), ... coder.ref(pGradCC), coder.ref(pGradRC), coder.ref(pGradRR), coder.ref(pGradCT), coder.ref(pGradRT), ... coder.ref(NoiseThreshold), ... pInRows, pInCols ... ); end end end