You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.1 KiB
73 lines
2.1 KiB
function modelConvert(model, outname) |
|
%% script for converting Piotr's matlab model into YAML format |
|
|
|
outfile = fopen(outname, 'w'); |
|
|
|
fprintf(outfile, '%%YAML:1.0\n\n'); |
|
|
|
fprintf(outfile, ['options:\n'... |
|
' numberOfTrees: 8\n'... |
|
' numberOfTreesToEvaluate: 4\n'... |
|
' selfsimilarityGridSize: 5\n'... |
|
' stride: 2\n'... |
|
' shrinkNumber: 2\n'... |
|
' patchSize: 32\n'... |
|
' patchInnerSize: 16\n'... |
|
' numberOfGradientOrientations: 4\n'... |
|
' gradientSmoothingRadius: 0\n'... |
|
' regFeatureSmoothingRadius: 2\n'... |
|
' ssFeatureSmoothingRadius: 8\n'... |
|
' gradientNormalizationRadius: 4\n\n']); |
|
|
|
fprintf(outfile, 'childs:\n'); |
|
printToYML(outfile, model.child', 0); |
|
|
|
fprintf(outfile, 'featureIds:\n'); |
|
printToYML(outfile, model.fids', 0); |
|
|
|
fprintf(outfile, 'thresholds:\n'); |
|
printToYML(outfile, model.thrs', 0); |
|
|
|
N = 1000; |
|
fprintf(outfile, 'edgeBoundaries:\n'); |
|
printToYML(outfile, model.eBnds, N); |
|
|
|
fprintf(outfile, 'edgeBins:\n'); |
|
printToYML(outfile, model.eBins, N); |
|
|
|
fclose(outfile); |
|
gzip(outname); |
|
|
|
end |
|
|
|
function printToYML(outfile, A, N) |
|
%% append matrix A to outfile as |
|
%% - [a11, a12, a13, a14, ..., a1n] |
|
%% - [a21, a22, a23, a24, ..., a2n] |
|
%% ... |
|
%% |
|
%% if size(A, 2) == 1, A is printed by N elemnent per row |
|
|
|
if (length(size(A)) ~= 2) |
|
error('printToYML: second-argument matrix should have two dimensions'); |
|
end |
|
|
|
if (size(A,2) ~= 1) |
|
for i=1:size(A,1) |
|
fprintf(outfile, ' - ['); |
|
fprintf(outfile, '%d,', A(i, 1:end-1)); |
|
fprintf(outfile, '%d]\n', A(i, end)); |
|
end |
|
else |
|
len = length(A); |
|
for i=1:ceil(len/N) |
|
first = (i-1)*N + 1; |
|
last = min(i*N, len) - 1; |
|
|
|
fprintf(outfile, ' - ['); |
|
fprintf(outfile, '%d,', A(first:last)); |
|
fprintf(outfile, '%d]\n', A(last + 1)); |
|
end |
|
end |
|
fprintf(outfile, '\n'); |
|
end |