Browse Source

MATLAB code

master
anapt 7 years ago
parent
commit
1339d2dc56
  1. 93
      code/demo_meanshift.m
  2. 223
      code/meanshift.m
  3. 225
      code/meanshift.m~
  4. 874
      code/meanshift.prj
  5. BIN
      code/r15.mat

93
code/demo_meanshift.m

@ -0,0 +1,93 @@
%
% SCRIPT: DEMO_MEANSHIFT
%
% Sample script on usage of mean-shift function.
%
% DEPENDENCIES
%
% meanshift
%
%
%% CLEAN-UP
clear;
close all;
%% PARAMETERS
% dataset options
basepath = './code/';
filename = 'r15';
varX = 'X';
varL = 'L';
% mean shift options
h = 1;
optMeanShift.epsilon = 1e-4*h;
optMeanShift.verbose = true;
optMeanShift.display = true;
%% (BEGIN)
fprintf('\n *** begin %s ***\n\n',mfilename);
%% READ DATA
fprintf('...reading data...\n')
matFile = [basepath filesep filename '.mat'];
fprintf(' - file: %s...\n', matFile)
ioData = matfile( matFile );
x = ioData.(varX);
l = ioData.(varL);
figure('name', 'original_data')
scatter(x(:,1),x(:,2), 8, l);
%% PERFORM MEAN SHIFT
fprintf('...computing mean shift...')
tic;
y = meanshift( x, h, optMeanShift );
tElapsed = toc;
fprintf('DONE in %.2f sec\n', tElapsed);
%% SHOW FINAL POSITIONS
figure('name', 'final_local_maxima_points')
scatter(y(:,1),y(:,2), 8, l);
%% (END)
fprintf('\n *** end %s ***\n\n',mfilename);
%%------------------------------------------------------------
%
% AUTHORS
%
% Dimitris Floros fcdimitr@auth.gr
%
% VERSION
%
% 0.1 - December 29, 2017
%
% CHANGELOG
%
% 0.1 (Dec 29, 2017) - Dimitris
% * initial implementation
%
% ------------------------------------------------------------

223
code/meanshift.m

@ -0,0 +1,223 @@
function y = meanshift(x, h, varargin)
% MEANSHIFT - Mean shift implementation
%
% SYNTAX
%
% YOUT = MEANSHIFT( XIN, BAND )
% YOUT = MEANSHIFT( ..., 'epsilon', EPSILON )
% YOUT = MEANSHIFT( ..., 'verbose', VERBOSE )
% YOUT = MEANSHIFT( ..., 'display', DISPLAY )
%
% INPUT
%
% XIN Input data (for clustering) [n-by-d]
% BAND Bandwidth value [scalar]
%
% OPTIONAL
%
% EPSILON Threshold for convergence [scalar]
% {default: 1e-4*h}
% VERBOSE Print iteration number & error? [boolean]
% {default: false}
% DISPLAY Plot results of each iteration? [boolean]
% (only for 2D points)
% {default: false}
%
% OUTPUT
%
% YOUT Final points location after mean shift [n-by-d]
%
% DESCRIPTION
%
% YOUT = MEANSHIFT(XIN,BAND) implements mean shift algorithm on
% input points XIN, using Gaussian kernel with bandwidth BAND.
% The local maxima of each point is then recorded in the output
% array YOUT.
%
% DEPENDENCIES
%
% <none>
%
% LOCAL-FUNCTIONS
%
% rangesearch2sparse
% parseOptArgs
%
% See also kmeans
%
%% PARAMETERS
% stoping threshold
opt.epsilon = 1e-4*h;
opt.verbose = false;
opt.display = false;
%% PARSE OPTIONAL INPUTS
opt = parseOptArgs(opt, varargin{:});
%% INITIALIZATION
% number of points -- dimensionality
[n, d] = size( x );
% initialize output points to input points
y = x;
% mean shift vectors (initialize to infinite)
m = inf;
% iteration counter
iter = 0;
if opt.display && d == 2
fig = figure(1337);
set(fig, 'name', 'real_time_quiver')
end
norm(x)
while norm(m) > opt.epsilon % --- iterate unitl convergence
iter = iter + 1;
% find pairwise distance matrix (inside radius)
[I, D] = rangesearch( x, y, h );
D = cellfun( @(x) x.^2, D, 'UniformOutput', false );
W = rangesearch2sparse( I, D );
% compute kernel matrix
W = spfun( @(x) exp( -x / (2*h^2) ), W );
% make sure diagonal elements are 1
W = W + spdiags( ones(n,1), 0, n, n );
% compute new y vector
y_new = W * x;
% normalize vector
l = [sum(W, 2) sum(W, 2)];
y_new = y_new ./ l;
% calculate mean-shift vector
m = y_new - y;
if opt.display && d == 2
figure(1337)
clf
hold on
scatter( y(:,1), y(:,2) );
quiver( y(:,1), y(:,2), m(:,1), m(:,2), 0 );
pause(0.3)
end
% update y
y = y_new;
if opt.verbose
fprintf( ' Iteration %d - error %.2g\n', iter, norm(m) );
end
end % while (m > epsilon)
end
%% LOCAL FUNCTION: CREATE SPARSE MATRIX FROM RANGE SEARCH
function mat = rangesearch2sparse(idxCol, dist)
% INPUT idxCol Index columns for matrix [n-cell]
% dist Distances of points [n-cell]
% OUTPUT mat Sparse matrix with distances [n-by-n sparse]
% number of neighbors for each point
nNbr = cellfun( @(x) numel(x), idxCol );
% number of points
n = numel( idxCol );
% row indices (for sparse matrix formation convenience)
idxRow = arrayfun( @(n,i) i * ones( 1, n ), nNbr, (1:n)', ...
'UniformOutput', false );
% sparse matrix formation
mat = sparse( [idxRow{:}], [idxCol{:}], [dist{:}], n, n );
end
%% LOCAL FUNCTION: PARSE OPTIONAL ARGUMENTS
function opt = parseOptArgs (dflt, varargin)
% INPUT dflt Struct with default parameters [struct]
% <name-value pairs> [varargin]
% OUTPUT opt Updated parameters [struct]
%% INITIALIZATION
ip = inputParser;
ip.CaseSensitive = false;
ip.KeepUnmatched = false;
ip.PartialMatching = true;
ip.StructExpand = true;
%% PARAMETERS
argNames = fieldnames( dflt );
for i = 1 : length(argNames)
addParameter( ip, argNames{i}, dflt.(argNames{i}) );
end
%% PARSE AND RETURN
parse( ip, varargin{:} );
opt = ip.Results;
%% SET EMPTY VALUES TO DEFAULTS
for i = 1 : length(argNames)
if isempty( opt.(argNames{i}) )
opt.(argNames{i}) = dflt.(argNames{i});
end
end
end
%%------------------------------------------------------------
%
% AUTHORS
%
% Dimitris Floros fcdimitr@auth.gr
%
% VERSION
%
% 0.2 - January 04, 2018
%
% CHANGELOG
%
% 0.2 (Jan 04, 2018) - Dimitris
% * FIX: distance should be squared euclidean
% * FIX: range search radius should be bandwidth
%
% 0.1 (Dec 29, 2017) - Dimitris
% * initial implementation
%
% ------------------------------------------------------------

225
code/meanshift.m~

@ -0,0 +1,225 @@
function y = meanshift(x, h, varargin)
% MEANSHIFT - Mean shift implementation
%
% SYNTAX
%
% YOUT = MEANSHIFT( XIN, BAND )
% YOUT = MEANSHIFT( ..., 'epsilon', EPSILON )
% YOUT = MEANSHIFT( ..., 'verbose', VERBOSE )
% YOUT = MEANSHIFT( ..., 'display', DISPLAY )
%
% INPUT
%
% XIN Input data (for clustering) [n-by-d]
% BAND Bandwidth value [scalar]
%
% OPTIONAL
%
% EPSILON Threshold for convergence [scalar]
% {default: 1e-4*h}
% VERBOSE Print iteration number & error? [boolean]
% {default: false}
% DISPLAY Plot results of each iteration? [boolean]
% (only for 2D points)
% {default: false}
%
% OUTPUT
%
% YOUT Final points location after mean shift [n-by-d]
%
% DESCRIPTION
%
% YOUT = MEANSHIFT(XIN,BAND) implements mean shift algorithm on
% input points XIN, using Gaussian kernel with bandwidth BAND.
% The local maxima of each point is then recorded in the output
% array YOUT.
%
% DEPENDENCIES
%
% <none>
%
% LOCAL-FUNCTIONS
%
% rangesearch2sparse
% parseOptArgs
%
% See also kmeans
%
%% PARAMETERS
% stoping threshold
opt.epsilon = 1e-4*h;
opt.verbose = false;
opt.display = false;
%% PARSE OPTIONAL INPUTS
opt = parseOptArgs(opt, varargin{:});
%% INITIALIZATION
% number of points -- dimensionality
[n, d] = size( x );
% initialize output points to input points
y = x;
% mean shift vectors (initialize to infinite)
m = inf;
% iteration counter
iter = 0;
if opt.display && d == 2
fig = figure(1337);
set(fig, 'name', 'real_time_quiver')
end
norm(x)
while norm(m) > opt.epsilon % --- iterate unitl convergence
iter = iter + 1;
% find pairwise distance matrix (inside radius)
[I, D] = rangesearch( x, y, h );
D = cellfun( @(x) x.^2, D, 'UniformOutput', false );
W = rangesearch2sparse( I, D );
% compute kernel matrix
W = spfun( @(x) exp( -x / (2*h^2) ), W );
% make sure diagonal elements are 1
W = W + spdiags( ones(n,1), 0, n, n );
% compute new y vector
y_new = W * x;
% normalize vector
l = [sum(W, 2) sum(W, 2)];
y_new = y_new ./ l;
% calculate mean-shift vector
m = y_new - y;
if opt.display && d == 2
figure(1337)
clf
hold on
scatter( y(:,1), y(:,2) );
quiver( y(:,1), y(:,2), m(:,1), m(:,2), 0 );
pause(0.3)
end
% update y
y = y_new;
if opt.verbose
fprintf( ' Iteration %d - error %.2g\n', iter, norm(m) );
end
end % while (m > epsilon)
end
%% LOCAL FUNCTION: CREATE SPARSE MATRIX FROM RANGE SEARCH
function mat = rangesearch2sparse(idxCol, dist)
% INPUT idxCol Index columns for matrix [n-cell]
% dist Distances of points [n-cell]
% OUTPUT mat Sparse matrix with distances [n-by-n sparse]
% number of neighbors for each point
nNbr = cellfun( @(x) numel(x), idxCol );
% number of points
n = numel( idxCol );
% row indices (for sparse matrix formation convenience)
idxRow = arrayfun( @(n,i) i * ones( 1, n ), nNbr, (1:n)', ...
'UniformOutput', false );
% sparse matrix formation
mat = sparse( [idxRow{:}], [idxCol{:}], [dist{:}], n, n );
end
%% LOCAL FUNCTION: PARSE OPTIONAL ARGUMENTS
function opt = parseOptArgs (dflt, varargin)
% INPUT dflt Struct with default parameters [struct]
% <name-value pairs> [varargin]
% OUTPUT opt Updated parameters [struct]
%% INITIALIZATION
ip = inputParser;
ip.CaseSensitive = false;
ip.KeepUnmatched = false;
ip.PartialMatching = true;
ip.StructExpand = true;
%% PARAMETERS
argNames = fieldnames( dflt );
for i = 1 : length(argNames)
addParameter( ip, argNames{i}, dflt.(argNames{i}) );
end
%% PARSE AND RETURN
parse( ip, varargin{:} );
opt = ip.Results;
%% SET EMPTY VALUES TO DEFAULTS
for i = 1 : length(argNames)
if isempty( opt.(argNames{i}) )
opt.(argNames{i}) = dflt.(argNames{i});
end
end
end
%%------------------------------------------------------------
%
% AUTHORS
%
% Dimitris Floros fcdimitr@auth.gr
%
% VERSION
%
% 0.2 - January 04, 2018
%
% CHANGELOG
%
% 0.2 (Jan 04, 2018) - Dimitris
% * FIX: distance should be squared euclidean
% * FIX: range search radius should be bandwidth
%
% 0.1 (Dec 29, 2017) - Dimitris
% * initial implementation
%
% ------------------------------------------------------------

874
code/meanshift.prj

@ -0,0 +1,874 @@
<deployment-project plugin="plugin.coder" plugin-version="R2015a">
<configuration file="/home/anapt/Documents/Parallel/mean-shift/code/meanshift.prj" location="/home/anapt/Documents/Parallel/mean-shift/code" name="meanshift" target="target.unifiedcoder" target-name="MATLAB Coder">
<profile key="profile.mex">
<param.BuiltInstrumentedMex />
<param.RanInstrumentedMex />
<param.WorkingFolder />
<param.SpecifiedWorkingFolder />
<param.BuildFolder>option.BuildFolder.Project</param.BuildFolder>
<param.SpecifiedBuildFolder />
<param.SearchPaths />
<param.ResponsivenessChecks />
<param.ExtrinsicCalls />
<param.IntegrityChecks />
<param.SaturateOnIntegerOverflow />
<param.GlobalDataSyncMethod />
<param.EnableVariableSizing />
<param.DynamicMemoryAllocation />
<param.DynamicMemoryAllocationThreshold />
<param.StackUsageMax />
<param.FilePartitionMethod />
<param.GenerateComments />
<param.MATLABSourceComments />
<param.ReservedNameArray />
<param.EnableScreener />
<param.EnableDebugging />
<param.GenerateReport />
<param.LaunchReport />
<param.DefaultTestFile />
<param.MergeInstrumentationResults />
<param.VerificationMode />
<param.VerificationStatus>option.VerificationStatus.Inactive</param.VerificationStatus>
<param.CustomSourceCode />
<param.CustomHeaderCode />
<param.CustomInitializer />
<param.CustomTerminator />
<param.CustomInclude />
<param.CustomSource />
<param.CustomLibrary />
<param.PostCodeGenCommand />
<param.mex.GenCodeOnly />
<param.ConstantFoldingTimeout />
<param.RecursionLimit />
<param.PreserveVariableNames />
<param.TargetLang />
<param.EchoExpressions />
<param.InlineThreshold />
<param.InlineThresholdMax />
<param.InlineStackLimit />
<param.EnableMemcpy />
<param.MemcpyThreshold />
<param.EnableOpenMP />
<param.InitFltsAndDblsToZero />
<param.ConstantInputs />
<unset>
<param.BuiltInstrumentedMex />
<param.RanInstrumentedMex />
<param.WorkingFolder />
<param.SpecifiedWorkingFolder />
<param.BuildFolder />
<param.SpecifiedBuildFolder />
<param.SearchPaths />
<param.ResponsivenessChecks />
<param.ExtrinsicCalls />
<param.IntegrityChecks />
<param.SaturateOnIntegerOverflow />
<param.GlobalDataSyncMethod />
<param.EnableVariableSizing />
<param.DynamicMemoryAllocation />
<param.DynamicMemoryAllocationThreshold />
<param.StackUsageMax />
<param.FilePartitionMethod />
<param.GenerateComments />
<param.MATLABSourceComments />
<param.ReservedNameArray />
<param.EnableScreener />
<param.EnableDebugging />
<param.GenerateReport />
<param.LaunchReport />
<param.DefaultTestFile />
<param.MergeInstrumentationResults />
<param.VerificationMode />
<param.VerificationStatus />
<param.CustomSourceCode />
<param.CustomHeaderCode />
<param.CustomInitializer />
<param.CustomTerminator />
<param.CustomInclude />
<param.CustomSource />
<param.CustomLibrary />
<param.PostCodeGenCommand />
<param.mex.GenCodeOnly />
<param.ConstantFoldingTimeout />
<param.RecursionLimit />
<param.PreserveVariableNames />
<param.TargetLang />
<param.EchoExpressions />
<param.InlineThreshold />
<param.InlineThresholdMax />
<param.InlineStackLimit />
<param.EnableMemcpy />
<param.MemcpyThreshold />
<param.EnableOpenMP />
<param.InitFltsAndDblsToZero />
<param.ConstantInputs />
</unset>
</profile>
<profile key="profile.c">
<param.grt.GenCodeOnly>true</param.grt.GenCodeOnly>
<param.WorkingFolder />
<param.SpecifiedWorkingFolder />
<param.BuildFolder>option.BuildFolder.Project</param.BuildFolder>
<param.SpecifiedBuildFolder />
<param.SearchPaths />
<param.SaturateOnIntegerOverflow />
<param.PurelyIntegerCode />
<param.SupportNonFinite />
<param.EnableVariableSizing />
<param.DynamicMemoryAllocation />
<param.DynamicMemoryAllocationThreshold />
<param.StackUsageMax />
<param.MultiInstanceCode />
<param.FilePartitionMethod />
<param.GenerateComments />
<param.CommentStyle />
<param.MATLABSourceComments />
<param.MATLABFcnDesc />
<param.DataTypeReplacement />
<param.ConvertIfToSwitch />
<param.PreserveExternInFcnDecls />
<param.EnableSignedLeftShifts />
<param.ParenthesesLevel />
<param.MaxIdLength />
<param.CustomSymbolStrGlobalVar />
<param.CustomSymbolStrType />
<param.CustomSymbolStrField />
<param.CustomSymbolStrFcn />
<param.CustomSymbolStrTmpVar />
<param.CustomSymbolStrMacro />
<param.CustomSymbolStrEMXArray />
<param.CustomSymbolStrEMXArrayFcn />
<param.ReservedNameArray />
<param.EnableScreener />
<param.Verbose />
<param.GenerateReport />
<param.GenerateCodeMetricsReport />
<param.GenerateCodeReplacementReport />
<param.HighlightPotentialDataTypeIssues />
<param.LaunchReport />
<param.SILDebugging />
<param.CodeExecutionProfiling />
<param.DefaultTestFile />
<param.MergeInstrumentationResults />
<param.RanPilSilVerification />
<param.VerificationMode />
<param.VerificationStatus>option.VerificationStatus.Inactive</param.VerificationStatus>
<param.CustomSourceCode />
<param.CustomHeaderCode />
<param.CustomInitializer />
<param.CustomTerminator />
<param.CustomInclude />
<param.CustomSource />
<param.CustomLibrary />
<param.PostCodeGenCommand />
<param.TargetLangStandard />
<param.CodeReplacementLibrary />
<param.DeprecatedCRLFlag />
<param.SameHardware />
<param.HardwareVendor.Production />
<param.HardwareType.Production />
<param.HWDeviceType.Production />
<var.instance.enabled.Production />
<param.HardwareSizeChar.Production />
<param.HardwareSizeShort.Production />
<param.HardwareSizeInt.Production />
<param.HardwareSizeLong.Production />
<param.HardwareSizeLongLong.Production />
<param.HardwareSizeFloat.Production />
<param.HardwareSizeDouble.Production />
<param.HardwareSizeWord.Production />
<param.HardwareSizePointer.Production />
<param.HardwareEndianness.Production />
<param.HardwareArithmeticRightShift.Production />
<param.HardwareLongLongMode.Production />
<param.HardwareAtomicIntegerSize.Production />
<param.HardwareAtomicFloatSize.Production />
<param.HardwareDivisionRounding.Production />
<param.HardwareVendor.Target />
<param.HardwareType.Target />
<param.HWDeviceType.Target />
<var.instance.enabled.Target />
<param.HardwareSizeChar.Target />
<param.HardwareSizeShort.Target />
<param.HardwareSizeInt.Target />
<param.HardwareSizeLong.Target />
<param.HardwareSizeLongLong.Target />
<param.HardwareSizeFloat.Target />
<param.HardwareSizeDouble.Target />
<param.HardwareSizeWord.Target />
<param.HardwareSizePointer.Target />
<param.HardwareEndianness.Target />
<param.HardwareArithmeticRightShift.Target />
<param.HardwareLongLongMode.Target />
<param.HardwareAtomicIntegerSize.Target />
<param.HardwareAtomicFloatSize.Target />
<param.HardwareDivisionRounding.Target />
<param.Toolchain />
<param.BuildConfiguration />
<param.CustomToolchainOptions />
<param.CastingMode />
<param.IndentStyle />
<param.IndentSize />
<param.ConstantFoldingTimeout />
<param.RecursionLimit />
<param.IncludeTerminateFcn />
<param.GenerateExampleMain />
<param.PreserveVariableNames />
<param.TargetLang />
<param.CCompilerOptimization />
<param.CCompilerCustomOptimizations />
<param.GenerateMakefile />
<param.BuildToolEnable />
<param.MakeCommand />
<param.TemplateMakefile />
<param.BuildToolConfiguration />
<param.InlineThreshold />
<param.InlineThresholdMax />
<param.InlineStackLimit />
<param.EnableMemcpy />
<param.MemcpyThreshold />
<param.EnableOpenMP />
<param.InitFltsAndDblsToZero />
<param.PassStructByReference />
<param.UseECoderFeatures />
<unset>
<param.WorkingFolder />
<param.SpecifiedWorkingFolder />
<param.BuildFolder />
<param.SpecifiedBuildFolder />
<param.SearchPaths />
<param.SaturateOnIntegerOverflow />
<param.PurelyIntegerCode />
<param.SupportNonFinite />
<param.EnableVariableSizing />
<param.DynamicMemoryAllocation />
<param.DynamicMemoryAllocationThreshold />
<param.StackUsageMax />
<param.MultiInstanceCode />
<param.FilePartitionMethod />
<param.GenerateComments />
<param.CommentStyle />
<param.MATLABSourceComments />
<param.MATLABFcnDesc />
<param.DataTypeReplacement />
<param.ConvertIfToSwitch />
<param.PreserveExternInFcnDecls />
<param.EnableSignedLeftShifts />
<param.ParenthesesLevel />
<param.MaxIdLength />
<param.CustomSymbolStrGlobalVar />
<param.CustomSymbolStrType />
<param.CustomSymbolStrField />
<param.CustomSymbolStrFcn />
<param.CustomSymbolStrTmpVar />
<param.CustomSymbolStrMacro />
<param.CustomSymbolStrEMXArray />
<param.CustomSymbolStrEMXArrayFcn />
<param.ReservedNameArray />
<param.EnableScreener />
<param.Verbose />
<param.GenerateReport />
<param.GenerateCodeMetricsReport />
<param.GenerateCodeReplacementReport />
<param.HighlightPotentialDataTypeIssues />
<param.LaunchReport />
<param.SILDebugging />
<param.CodeExecutionProfiling />
<param.DefaultTestFile />
<param.MergeInstrumentationResults />
<param.RanPilSilVerification />
<param.VerificationMode />
<param.VerificationStatus />
<param.CustomSourceCode />
<param.CustomHeaderCode />
<param.CustomInitializer />
<param.CustomTerminator />
<param.CustomInclude />
<param.CustomSource />
<param.CustomLibrary />
<param.PostCodeGenCommand />
<param.TargetLangStandard />
<param.CodeReplacementLibrary />
<param.DeprecatedCRLFlag />
<param.SameHardware />
<param.HardwareVendor.Production />
<param.HardwareType.Production />
<param.HWDeviceType.Production />
<var.instance.enabled.Production />
<param.HardwareSizeChar.Production />
<param.HardwareSizeShort.Production />
<param.HardwareSizeInt.Production />
<param.HardwareSizeLong.Production />
<param.HardwareSizeLongLong.Production />
<param.HardwareSizeFloat.Production />
<param.HardwareSizeDouble.Production />
<param.HardwareSizeWord.Production />
<param.HardwareSizePointer.Production />
<param.HardwareEndianness.Production />
<param.HardwareArithmeticRightShift.Production />
<param.HardwareLongLongMode.Production />
<param.HardwareAtomicIntegerSize.Production />
<param.HardwareAtomicFloatSize.Production />
<param.HardwareDivisionRounding.Production />
<param.HardwareVendor.Target />
<param.HardwareType.Target />
<param.HWDeviceType.Target />
<var.instance.enabled.Target />
<param.HardwareSizeChar.Target />
<param.HardwareSizeShort.Target />
<param.HardwareSizeInt.Target />
<param.HardwareSizeLong.Target />
<param.HardwareSizeLongLong.Target />
<param.HardwareSizeFloat.Target />
<param.HardwareSizeDouble.Target />
<param.HardwareSizeWord.Target />
<param.HardwareSizePointer.Target />
<param.HardwareEndianness.Target />
<param.HardwareArithmeticRightShift.Target />
<param.HardwareLongLongMode.Target />
<param.HardwareAtomicIntegerSize.Target />
<param.HardwareAtomicFloatSize.Target />
<param.HardwareDivisionRounding.Target />
<param.Toolchain />
<param.BuildConfiguration />
<param.CustomToolchainOptions />
<param.CastingMode />
<param.IndentStyle />
<param.IndentSize />
<param.ConstantFoldingTimeout />
<param.RecursionLimit />
<param.IncludeTerminateFcn />
<param.GenerateExampleMain />
<param.PreserveVariableNames />
<param.TargetLang />
<param.CCompilerOptimization />
<param.CCompilerCustomOptimizations />
<param.GenerateMakefile />
<param.BuildToolEnable />
<param.MakeCommand />
<param.TemplateMakefile />
<param.BuildToolConfiguration />
<param.InlineThreshold />
<param.InlineThresholdMax />
<param.InlineStackLimit />
<param.EnableMemcpy />
<param.MemcpyThreshold />
<param.EnableOpenMP />
<param.InitFltsAndDblsToZero />
<param.PassStructByReference />
<param.UseECoderFeatures />
</unset>
</profile>
<profile key="profile.hdl">
<param.hdl.Workflow />
<param.hdl.TargetLanguage />
<param.hdl.TargetPlatform />
<param.hdl.SynthesisTool />
<param.hdl.InputFrequency />
<param.hdl.TargetFrequency />
<param.hdl.IPCoreName />
<param.hdl.IPCoreVersion />
<param.hdl.AdditionalIPFiles />
<param.hdl.ExecutionMode />
<param.hdl.SynthesisToolChipFamily />
<param.hdl.SynthesisToolDeviceName />
<param.hdl.SynthesisToolPackageName />
<param.hdl.SynthesisToolSpeedValue />
<param.hdl.TargetInterface />
<param.hdl.CheckConformance />
<param.hdl.LaunchConformanceReport />
<param.hdl.GenerateEDAScripts />
<param.hdl.GenerateHDLCode />
<param.hdl.AdditionalSynthesisProjectFiles />
<param.hdl.CriticalPathSource />
<param.hdl.EmbeddedSystemTool />
<param.hdl.EmbeddedSystemProjectFolder />
<param.hdl.BitstreamBuildMode />
<param.hdl.ReferenceDesign />
<param.hdl.ReferenceDesignPath />
<param.hdl.LegacyDefaultTestFile />
<param.WorkingFolder />
<param.SpecifiedWorkingFolder />
<param.BuildFolder>option.BuildFolder.Project</param.BuildFolder>
<param.SpecifiedBuildFolder />
<param.SearchPaths />
<param.hdl.MapPersistentVarsToRAM />
<param.hdl.RAMThreshold />
<param.hdl.RAMVariableNames />
<param.hdl.RegisterInputs />
<param.hdl.RegisterOutputs />
<param.hdl.DistributedPipelining />
<param.hdl.DistributedPipeliningPriority />
<param.hdl.PreserveDesignDelays />
<param.hdl.InputPipeline />
<param.hdl.OutputPipeline />
<param.hdl.PipelineVariables />
<param.hdl.ResourceSharing />
<param.hdl.ConstantMultiplierOptimization />
<param.hdl.LoopOptimization />
<param.GenerateComments />
<param.MATLABSourceComments />
<param.hdl.VHDLFileExt />
<param.hdl.VerilogFileExt />
<param.hdl.DateComment />
<param.hdl.UserComment />
<param.hdl.ModulePrefix />
<param.hdl.PackagePostfix />
<param.hdl.EntityConflictPostfix />
<param.hdl.ReservedWordPostfix />
<param.hdl.ClockProcessPostfix />
<param.hdl.ComplexRealPostfix />
<param.hdl.ComplexImagPostfix />
<param.hdl.PipelinePostfix />
<param.hdl.EnablePrefix />
<param.hdl.InlineConfigurations />
<param.hdl.UseRisingEdge />
<param.hdl.UseMatrixTypesInHDL />
<param.hdl.HDLCompileFilePostfix />
<param.hdl.HDLCompileInit />
<param.hdl.HDLCompileVHDLCmd />
<param.hdl.HDLCompileVerilogCmd />
<param.hdl.HDLCompileTerm />
<param.hdl.HDLSimFilePostfix />
<param.hdl.HDLSimInit />
<param.hdl.HDLSimCmd />
<param.hdl.HDLSimViewWaveCmd />
<param.hdl.HDLSimTerm />
<param.hdl.HDLSynthTool />
<var.hasSynthesisToolScript />
<var.toolSpecificEDAScript />
<param.hdl.HDLSynthFilePostfix />
<param.hdl.HDLSynthInit />
<param.hdl.HDLSynthCmd />
<param.hdl.HDLSynthTerm />
<param.hdl.HDLLintTool />
<var.LintToolScript />
<var.hasHDLLintTool />
<param.hdl.HDLLintInit />
<param.hdl.HDLLintCmd />
<param.hdl.HDLLintTerm />
<param.hdl.ResetType />
<param.hdl.ResetAssertedLevel />
<param.hdl.ResetInputPort />
<param.hdl.ClockInputPort />
<param.hdl.ClockEdge />
<param.hdl.ClockEnableInputPort />
<param.hdl.Oversampling />
<param.hdl.EnableRate />
<param.hdl.InputType />
<param.hdl.OutputType />
<param.hdl.ClockEnableOutputPort />
<param.hdl.ScalarizePorts />
<param.hdl.HDLCodingStandard />
<var.HDLCodingStandard_FilterPassingRules_enable />
<var.HDLCodingStandard_DetectDuplicateNamesCheck_enable />
<var.HDLCodingStandard_HDLKeywords_enable />
<var.HDLCodingStandard_ModuleInstanceEntityNameLength_enable />
<var.HDLCodingStandard_ModuleInstanceEntityNameLength_min />
<var.HDLCodingStandard_ModuleInstanceEntityNameLength_max />
<var.HDLCodingStandard_SignalPortParamNameLength_enable />
<var.HDLCodingStandard_SignalPortParamNameLength_min />
<var.HDLCodingStandard_SignalPortParamNameLength_max />
<var.HDLCodingStandard_MinimizeVariableUsage_enable />
<var.HDLCodingStandard_InitialStatements_enable />
<var.HDLCodingStandard_IfElseChain_enable />
<var.HDLCodingStandard_IfElseChain_length />
<var.HDLCodingStandard_IfElseNesting_enable />
<var.HDLCodingStandard_IfElseNesting_depth />
<var.HDLCodingStandard_MultiplierBitWidth_enable />
<var.HDLCodingStandard_MultiplierBitWidth_width />
<var.HDLCodingStandard_NonIntegerTypes_enable />
<var.HDLCodingStandard_LineLength_enable />
<var.HDLCodingStandard_LineLength_length />
<param.hdl.GenerateCosimTestBench />
<param.hdl.CosimLogOutputs />
<param.hdl.CosimTool />
<param.hdl.CosimRunMode />
<param.hdl.SimulateCosimTestBench />
<param.hdl.CosimClockHighTime />
<param.hdl.CosimClockLowTime />
<param.hdl.CosimHoldTime />
<param.hdl.CosimClockEnableDelay />
<param.hdl.CosimResetLength />
<param.hdl.GenerateFILTestBench />
<param.hdl.FILLogOutputs />
<param.hdl.FILBoardName />
<param.hdl.FILConnection />
<param.hdl.FILBoardIPAddress />
<param.hdl.FILBoardMACAddress />
<param.hdl.FILAdditionalFiles />
<param.hdl.SimulateFILTestBench />
<var.hasTestBench />
<param.hdl.GenerateHDLTestBench />
<param.hdl.SimulateGeneratedCode />
<param.hdl.SimulationTool />
<param.hdl.TestBenchPostfix />
<param.hdl.ForceClock />
<param.hdl.ClockHighTime />
<param.hdl.ClockLowTime />
<param.hdl.HoldTime />
<param.hdl.ForceClockEnable />
<param.hdl.TestBenchClockEnableDelay />
<param.hdl.ForceReset />
<param.hdl.ResetLength />
<param.hdl.HoldInputDataBetweenSamples />
<param.hdl.InputDataInterval />
<param.hdl.InitializeTestBenchInputs />
<param.hdl.MultifileTestBench />
<param.hdl.TestBenchDataPostfix />
<param.hdl.TestReferencePostfix />
<param.hdl.UseFileIOInTestBench />
<param.hdl.IgnoreDataChecking />
<param.hdl.SimulationIterationLimit />
<param.hdl.UseFiAccelForTestBench />
<param.hdl.hdlVariables />
<param.hdl.hdlComputedVariables />
<param.hdl.InitializeBlockRAM />
<param.hdl.RAMArchitecture />
<param.hdl.PartitionFunctions />
<param.hdl.GenerateMLFcnBlock />
<param.hdl.GenerateXSGBlock />
<unset>
<param.hdl.Workflow />
<param.hdl.TargetLanguage />
<param.hdl.TargetPlatform />
<param.hdl.SynthesisTool />
<param.hdl.InputFrequency />
<param.hdl.TargetFrequency />
<param.hdl.IPCoreName />
<param.hdl.IPCoreVersion />
<param.hdl.AdditionalIPFiles />
<param.hdl.ExecutionMode />
<param.hdl.SynthesisToolChipFamily />
<param.hdl.SynthesisToolDeviceName />
<param.hdl.SynthesisToolPackageName />
<param.hdl.SynthesisToolSpeedValue />
<param.hdl.TargetInterface />
<param.hdl.CheckConformance />
<param.hdl.LaunchConformanceReport />
<param.hdl.GenerateEDAScripts />
<param.hdl.GenerateHDLCode />
<param.hdl.AdditionalSynthesisProjectFiles />
<param.hdl.CriticalPathSource />
<param.hdl.EmbeddedSystemTool />
<param.hdl.EmbeddedSystemProjectFolder />
<param.hdl.BitstreamBuildMode />
<param.hdl.ReferenceDesign />
<param.hdl.ReferenceDesignPath />
<param.hdl.LegacyDefaultTestFile />
<param.WorkingFolder />
<param.SpecifiedWorkingFolder />
<param.BuildFolder />
<param.SpecifiedBuildFolder />
<param.SearchPaths />
<param.hdl.MapPersistentVarsToRAM />
<param.hdl.RAMThreshold />
<param.hdl.RAMVariableNames />
<param.hdl.RegisterInputs />
<param.hdl.RegisterOutputs />
<param.hdl.DistributedPipelining />
<param.hdl.DistributedPipeliningPriority />
<param.hdl.PreserveDesignDelays />
<param.hdl.InputPipeline />
<param.hdl.OutputPipeline />
<param.hdl.PipelineVariables />
<param.hdl.ResourceSharing />
<param.hdl.ConstantMultiplierOptimization />
<param.hdl.LoopOptimization />
<param.GenerateComments />
<param.MATLABSourceComments />
<param.hdl.VHDLFileExt />
<param.hdl.VerilogFileExt />
<param.hdl.DateComment />
<param.hdl.UserComment />
<param.hdl.ModulePrefix />
<param.hdl.PackagePostfix />
<param.hdl.EntityConflictPostfix />
<param.hdl.ReservedWordPostfix />
<param.hdl.ClockProcessPostfix />
<param.hdl.ComplexRealPostfix />
<param.hdl.ComplexImagPostfix />
<param.hdl.PipelinePostfix />
<param.hdl.EnablePrefix />
<param.hdl.InlineConfigurations />
<param.hdl.UseRisingEdge />
<param.hdl.UseMatrixTypesInHDL />
<param.hdl.HDLCompileFilePostfix />
<param.hdl.HDLCompileInit />
<param.hdl.HDLCompileVHDLCmd />
<param.hdl.HDLCompileVerilogCmd />
<param.hdl.HDLCompileTerm />
<param.hdl.HDLSimFilePostfix />
<param.hdl.HDLSimInit />
<param.hdl.HDLSimCmd />
<param.hdl.HDLSimViewWaveCmd />
<param.hdl.HDLSimTerm />
<param.hdl.HDLSynthTool />
<var.hasSynthesisToolScript />
<var.toolSpecificEDAScript />
<param.hdl.HDLSynthFilePostfix />
<param.hdl.HDLSynthInit />
<param.hdl.HDLSynthCmd />
<param.hdl.HDLSynthTerm />
<param.hdl.HDLLintTool />
<var.LintToolScript />
<var.hasHDLLintTool />
<param.hdl.HDLLintInit />
<param.hdl.HDLLintCmd />
<param.hdl.HDLLintTerm />
<param.hdl.ResetType />
<param.hdl.ResetAssertedLevel />
<param.hdl.ResetInputPort />
<param.hdl.ClockInputPort />
<param.hdl.ClockEdge />
<param.hdl.ClockEnableInputPort />
<param.hdl.Oversampling />
<param.hdl.EnableRate />
<param.hdl.InputType />
<param.hdl.OutputType />
<param.hdl.ClockEnableOutputPort />
<param.hdl.ScalarizePorts />
<param.hdl.HDLCodingStandard />
<var.HDLCodingStandard_FilterPassingRules_enable />
<var.HDLCodingStandard_DetectDuplicateNamesCheck_enable />
<var.HDLCodingStandard_HDLKeywords_enable />
<var.HDLCodingStandard_ModuleInstanceEntityNameLength_enable />
<var.HDLCodingStandard_ModuleInstanceEntityNameLength_min />
<var.HDLCodingStandard_ModuleInstanceEntityNameLength_max />
<var.HDLCodingStandard_SignalPortParamNameLength_enable />
<var.HDLCodingStandard_SignalPortParamNameLength_min />
<var.HDLCodingStandard_SignalPortParamNameLength_max />
<var.HDLCodingStandard_MinimizeVariableUsage_enable />
<var.HDLCodingStandard_InitialStatements_enable />
<var.HDLCodingStandard_IfElseChain_enable />
<var.HDLCodingStandard_IfElseChain_length />
<var.HDLCodingStandard_IfElseNesting_enable />
<var.HDLCodingStandard_IfElseNesting_depth />
<var.HDLCodingStandard_MultiplierBitWidth_enable />
<var.HDLCodingStandard_MultiplierBitWidth_width />
<var.HDLCodingStandard_NonIntegerTypes_enable />
<var.HDLCodingStandard_LineLength_enable />
<var.HDLCodingStandard_LineLength_length />
<param.hdl.GenerateCosimTestBench />
<param.hdl.CosimLogOutputs />
<param.hdl.CosimTool />
<param.hdl.CosimRunMode />
<param.hdl.SimulateCosimTestBench />
<param.hdl.CosimClockHighTime />
<param.hdl.CosimClockLowTime />
<param.hdl.CosimHoldTime />
<param.hdl.CosimClockEnableDelay />
<param.hdl.CosimResetLength />
<param.hdl.GenerateFILTestBench />
<param.hdl.FILLogOutputs />
<param.hdl.FILBoardName />
<param.hdl.FILConnection />
<param.hdl.FILBoardIPAddress />
<param.hdl.FILBoardMACAddress />
<param.hdl.FILAdditionalFiles />
<param.hdl.SimulateFILTestBench />
<var.hasTestBench />
<param.hdl.GenerateHDLTestBench />
<param.hdl.SimulateGeneratedCode />
<param.hdl.SimulationTool />
<param.hdl.TestBenchPostfix />
<param.hdl.ForceClock />
<param.hdl.ClockHighTime />
<param.hdl.ClockLowTime />
<param.hdl.HoldTime />
<param.hdl.ForceClockEnable />
<param.hdl.TestBenchClockEnableDelay />
<param.hdl.ForceReset />
<param.hdl.ResetLength />
<param.hdl.HoldInputDataBetweenSamples />
<param.hdl.InputDataInterval />
<param.hdl.InitializeTestBenchInputs />
<param.hdl.MultifileTestBench />
<param.hdl.TestBenchDataPostfix />
<param.hdl.TestReferencePostfix />
<param.hdl.UseFileIOInTestBench />
<param.hdl.IgnoreDataChecking />
<param.hdl.SimulationIterationLimit />
<param.hdl.UseFiAccelForTestBench />
<param.hdl.hdlVariables />
<param.hdl.hdlComputedVariables />
<param.hdl.InitializeBlockRAM />
<param.hdl.RAMArchitecture />
<param.hdl.PartitionFunctions />
<param.hdl.GenerateMLFcnBlock />
<param.hdl.GenerateXSGBlock />
</unset>
</profile>
<param.objective>option.objective.c</param.objective>
<param.WorkflowStep>reviewIssues</param.WorkflowStep>
<param.TestSnippets />
<param.DefaultImportExportVariable />
<param.UseGlobals>option.UseGlobals.No</param.UseGlobals>
<param.outputfile>${PROJECT_ROOT}/codegen/lib/meanshift/meanshift.a</param.outputfile>
<param.version />
<param.HasECoderFeatures />
<param.mex.mainhtml />
<param.grt.mainhtml />
<param.CallGeneratedCodeFromTest />
<param.AutoInferDefaultFile />
<param.AutoInferUseVariableSize />
<param.AutoInferUseUnboundedSize />
<param.AutoInferVariableSizeThreshold />
<param.AutoInferUnboundedSizeThreshold />
<param.EnableFixedPointStep />
<param.AnnotationChecksum />
<var.LegacyTarget />
<var.MirrorOnOpen>false</var.MirrorOnOpen>
<param.FixedPointEnabled>false</param.FixedPointEnabled>
<var.redirectedInputTypeData />
<var.DismissScreener>true</var.DismissScreener>
<param.unifiedParamStorage />
<param.mex.outputfile>meanshift_mex</param.mex.outputfile>
<param.grt.outputfile>meanshift</param.grt.outputfile>
<param.artifact>option.target.artifact.lib</param.artifact>
<param.outputfile>${PROJECT_ROOT}/codegen/lib/meanshift/meanshift.a</param.outputfile>
<param.EnableAutoExtrinsicCalls />
<param.UsePreconditions>false</param.UsePreconditions>
<param.FeatureFlags />
<param.FixedPointMode>option.FixedPointMode.None</param.FixedPointMode>
<param.AutoScaleLoopIndexVariables />
<param.ComputedFixedPointData />
<param.UserFixedPointData />
<param.DefaultWordLength />
<param.DefaultFractionLength />
<param.FixedPointSafetyMargin />
<param.FixedPointFimath />
<param.FixedPointTypeSource />
<param.StaticAnalysisTimeout />
<param.StaticAnalysisGlobalRangesOnly />
<param.LogAllIOValues />
<param.DetectOverflows />
<param.LogHistogram />
<param.ShowCoverage />
<param.ExcludedFixedPointVerificationFiles />
<param.ExcludedFixedPointSimulationFiles />
<param.InstrumentedBuildChecksum />
<param.FixedPointStaticAnalysisChecksum />
<param.InstrumentedMexFile />
<param.FixedPointValidationChecksum />
<param.FixedPointSourceCodeChecksum />
<param.FixedPointFunctionReplacements />
<param.OptimizeWholeNumbers />
<param.ContainerTypes />
<param.GeneratedFixedPointFileSuffix>_fixpt</param.GeneratedFixedPointFileSuffix>
<param.PlotFunction />
<param.SDIPlot />
<param.EnableCodeEfficiencyChecks />
<param.DefaultFixedPointSignedness />
<param.FixedPointTypeProposalMode />
<param.EnableFixedPointStep />
<unset>
<param.DefaultImportExportVariable />
<param.UseGlobals />
<param.outputfile />
<param.version />
<param.HasECoderFeatures />
<param.mex.mainhtml />
<param.grt.mainhtml />
<param.CallGeneratedCodeFromTest />
<param.AutoInferDefaultFile />
<param.AutoInferUseVariableSize />
<param.AutoInferUseUnboundedSize />
<param.AutoInferVariableSizeThreshold />
<param.AutoInferUnboundedSizeThreshold />
<param.EnableFixedPointStep />
<param.AnnotationChecksum />
<var.LegacyTarget />
<var.MirrorOnOpen />
<var.redirectedInputTypeData />
<param.unifiedParamStorage />
<param.mex.outputfile />
<param.grt.outputfile />
<param.EnableAutoExtrinsicCalls />
<param.UsePreconditions />
<param.FeatureFlags />
<param.AutoScaleLoopIndexVariables />
<param.ComputedFixedPointData />
<param.UserFixedPointData />
<param.DefaultWordLength />
<param.DefaultFractionLength />
<param.FixedPointSafetyMargin />
<param.FixedPointFimath />
<param.FixedPointTypeSource />
<param.StaticAnalysisTimeout />
<param.StaticAnalysisGlobalRangesOnly />
<param.LogAllIOValues />
<param.DetectOverflows />
<param.LogHistogram />
<param.ShowCoverage />
<param.ExcludedFixedPointVerificationFiles />
<param.ExcludedFixedPointSimulationFiles />
<param.InstrumentedBuildChecksum />
<param.FixedPointStaticAnalysisChecksum />
<param.InstrumentedMexFile />
<param.FixedPointValidationChecksum />
<param.FixedPointSourceCodeChecksum />
<param.FixedPointFunctionReplacements />
<param.OptimizeWholeNumbers />
<param.ContainerTypes />
<param.GeneratedFixedPointFileSuffix />
<param.PlotFunction />
<param.SDIPlot />
<param.EnableCodeEfficiencyChecks />
<param.DefaultFixedPointSignedness />
<param.FixedPointTypeProposalMode />
</unset>
<fileset.entrypoints>
<file custom-data-expanded="false" value="${PROJECT_ROOT}/meanshift.m" />
</fileset.entrypoints>
<fileset.testbench />
<build-deliverables>
<file location="${PROJECT_ROOT}/codegen/lib/meanshift" name="meanshift.a" optional="false">/home/anapt/Documents/Parallel/mean-shift/code/codegen/lib/meanshift/meanshift.a</file>
</build-deliverables>
<workflow />
<matlab>
<root>/usr/local/MATLAB/MATLAB_Production_Server/R2015a</root>
<toolboxes>
<toolbox name="matlabhdlcoder" />
<toolbox name="fixedpoint" />
<toolbox name="embeddedcoder" />
<toolbox name="matlabcoder" />
</toolboxes>
<toolbox>
<matlabhdlcoder>
<enabled>true</enabled>
</matlabhdlcoder>
</toolbox>
<toolbox>
<fixedpoint>
<enabled>true</enabled>
</fixedpoint>
</toolbox>
<toolbox>
<embeddedcoder>
<enabled>true</enabled>
</embeddedcoder>
</toolbox>
<toolbox>
<matlabcoder>
<enabled>true</enabled>
</matlabcoder>
</toolbox>
</matlab>
<platform>
<unix>true</unix>
<mac>false</mac>
<windows>false</windows>
<win2k>false</win2k>
<winxp>false</winxp>
<vista>false</vista>
<linux>true</linux>
<solaris>false</solaris>
<osver>4.13.0-26-generic</osver>
<os32>false</os32>
<os64>true</os64>
<arch>glnxa64</arch>
<matlab>true</matlab>
</platform>
</configuration>
</deployment-project>

BIN
code/r15.mat

Binary file not shown.
Loading…
Cancel
Save