"\ts - use null-range floodfill\n"
"\tf - use gradient floodfill with fixed(absolute) range\n"
"\tg - use gradient floodfill with floating(relative) range\n"
"\t4 - use 4-connectivity mode\n"
"\t8 - use 8-connectivity mode\n" );
color_img = cvcloneimage( color_img0 );
gray_img0 = cvcreateimage( cvsize(color_img->width, color_img->height), 8, 1 );
cvcvtcolor( color_img, gray_img0, cv_bgr2gray );
gray_img = cvcloneimage( gray_img0 );
mask = cvcreateimage( cvsize(color_img->width + 2, color_img->height + 2), 8, 1 );
cvnamedwindow( "image", 0 );
cvcreatetrackbar( "lo_diff", "image", &lo_diff, 255, null );
cvcreatetrackbar( "up_diff", "image", &up_diff, 255, null );
cvsetmousecallback( "image", on_mouse );
for(;;)
{
int c;
if( is_color )
cvshowimage( "image", color_img );
else
cvshowimage( "image", gray_img );
c = cvwaitkey(0);
switch( c )
{
case '\x1b':
printf("exiting ...\n");
goto exit_main;
case 'c':
if( is_color )
{
printf("grayscale mode is set\n");
cvcvtcolor( color_img, gray_img, cv_bgr2gray );
is_color = 0;
}
else
{
printf("color mode is set\n");
cvcopy( color_img0, color_img, null );
cvzero( mask );
is_color = 1;
}
break;
case 'm':
if( is_mask )
{
cvdestroywindow( "mask" );
is_mask = 0;
}
else
{
cvnamedwindow( "mask", 0 );
cvzero( mask );
cvshowimage( "mask", mask );
is_mask = 1;
}
break;
case 'r':