Merge pull request #6831 from bobpaulin:master

This commit is contained in:
Vadim Pisarevsky 2016-07-18 15:24:35 +00:00
commit 77f9bb7b76
3 changed files with 19 additions and 10 deletions

View File

@ -76,6 +76,7 @@ int main( int argc, char* argv[] )
double scale = 4.0;
int width = 24;
int height = 24;
double maxscale = -1.0;
srand((unsigned int)time(0));
@ -92,9 +93,10 @@ int main( int argc, char* argv[] )
" [-maxyangle <max_y_rotation_angle = %f>]\n"
" [-maxzangle <max_z_rotation_angle = %f>]\n"
" [-show [<scale = %f>]]\n"
" [-w <sample_width = %d>]\n [-h <sample_height = %d>]\n",
" [-w <sample_width = %d>]\n [-h <sample_height = %d>]\n"
" [-maxscale <max sample scale = %f>]\n",
argv[0], num, bgcolor, bgthreshold, maxintensitydev,
maxxangle, maxyangle, maxzangle, scale, width, height );
maxxangle, maxyangle, maxzangle, scale, width, height, maxscale );
return 0;
}
@ -172,6 +174,10 @@ int main( int argc, char* argv[] )
{
height = atoi( argv[++i] );
}
else if( !strcmp( argv[i], "-maxscale" ) )
{
maxscale = atof( argv[++i] );
}
}
printf( "Info file name: %s\n", ((infoname == NULL) ? nullname : infoname ) );
@ -194,6 +200,7 @@ int main( int argc, char* argv[] )
}
printf( "Width: %d\n", width );
printf( "Height: %d\n", height );
printf( "Max Scale: %g\n", maxscale);
/* determine action */
if( imagename && vecname )
@ -213,7 +220,7 @@ int main( int argc, char* argv[] )
cvCreateTestSamples( infoname, imagename, bgcolor, bgthreshold, bgfilename, num,
invert, maxintensitydev,
maxxangle, maxyangle, maxzangle, showsamples, width, height );
maxxangle, maxyangle, maxzangle, showsamples, width, height, maxscale);
printf( "Done\n" );
}

View File

@ -38,7 +38,6 @@
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include <cstring>
#include <ctime>
@ -1308,7 +1307,7 @@ void cvCreateTestSamples( const char* infoname,
int invert, int maxintensitydev,
double maxxangle, double maxyangle, double maxzangle,
int showsamples,
int winwidth, int winheight )
int winwidth, int winheight, double maxscale )
{
CvSampleDistortionData data;
@ -1337,7 +1336,6 @@ void cvCreateTestSamples( const char* infoname,
int i;
int x, y, width, height;
float scale;
float maxscale;
int inverse;
if( showsamples )
@ -1366,12 +1364,16 @@ void cvCreateTestSamples( const char* infoname,
for( i = 0; i < count; i++ )
{
icvGetNextFromBackgroundData( cvbgdata, cvbgreader );
maxscale = MIN( 0.7F * cvbgreader->src.cols / winwidth,
if( maxscale < 0.0 )
{
maxscale = MIN( 0.7F * cvbgreader->src.cols / winwidth,
0.7F * cvbgreader->src.rows / winheight );
}
if( maxscale < 1.0F ) continue;
scale = (maxscale - 1.0F) * rand() / RAND_MAX + 1.0F;
scale = ((float)maxscale - 1.0F) * rand() / RAND_MAX + 1.0F;
width = (int) (scale * winwidth);
height = (int) (scale * winheight);
x = (int) ((0.1+0.8 * rand()/RAND_MAX) * (cvbgreader->src.cols - width));

View File

@ -86,7 +86,7 @@ void cvCreateTestSamples( const char* infoname,
int invert, int maxintensitydev,
double maxxangle, double maxyangle, double maxzangle,
int showsamples,
int winwidth, int winheight );
int winwidth, int winheight, double maxscale );
/*
* cvCreateTrainingSamplesFromInfo