gusucode.com > vision工具箱matlab源码程序 > vision/+vision/+internal/+buildable/disparityBMBuildable.m
classdef disparityBMBuildable < coder.ExternalDependency %#codegen % disparityBMBuildable - encapsulate extractFeature (FREAK) implementation library % Copyright 2012-2013 The MathWorks, Inc. methods (Static) function name = getDescriptiveName(~) name = 'disparityBMBuildable'; end function b = isSupportedContext(~) b = true; % supports non-host target end function updateBuildInfo(buildInfo, context) buildInfo.addIncludePaths({fullfile(matlabroot,'toolbox', ... 'vision','builtins','src','ocv','include'), ... fullfile(matlabroot,'toolbox', ... 'vision','builtins','src','ocvcg', 'opencv', 'include')} ); buildInfo.addSourcePaths({fullfile(matlabroot,'toolbox', ... 'vision','builtins','src','ocv')}); buildInfo.addSourceFiles({'disparityBMCore.cpp'}); buildInfo.addIncludeFiles({'vision_defines.h', ... 'disparityBM.hpp', ... 'disparityBMCore_api.hpp'}); % no need 'rtwtypes.h' vision.internal.buildable.portableOpenCVBuildInfo(buildInfo, context, ... 'disparityBM'); end %------------------------------------------------------------------ % write all supported data-type specific function calls function outDisparity = disparityBM_compute(image1_u8, image2_u8, opt) coder.inline('always'); coder.cinclude('disparityBMCore_api.hpp'); nRows = int32(size(image1_u8, 1)); % original (before transpose) nCols = int32(size(image1_u8, 2)); % original (before transpose) outSize = [nRows nCols]; outDisparity = coder.nullcopy(zeros(outSize,'single')); roi1_ = int32(opt.roi1); roi2_ = int32(opt.roi2); paramStruct = struct( ... 'preFilterCap', int32(opt.preFilterCap), ... 'SADWindowSize', int32(opt.SADWindowSize), ... 'minDisparity', int32(opt.minDisparity), ... 'numberOfDisparities', int32(opt.numberOfDisparities), ... 'textureThreshold', int32(opt.textureThreshold), ... 'uniquenessRatio', int32(opt.uniquenessRatio), ... 'disp12MaxDiff', int32(opt.disp12MaxDiff), ... 'roi1', roi1_, ... 'roi2', roi2_, ... 'preFilterType', int32(opt.preFilterType), ... 'preFilterSize', int32(opt.preFilterSize), ... 'speckleWindowSize', int32(opt.speckleWindowSize), ... 'speckleRange', int32(opt.speckleRange), ... 'trySmallerWindows', int32(opt.trySmallerWindows)); coder.cstructname(paramStruct,'cvstDBMStruct_T'); coder.ceval('disparityBM_compute',... coder.ref(image1_u8), ... coder.ref(image2_u8), ... nRows, nCols, ... coder.ref(outDisparity), ... coder.ref(paramStruct)); end end end