38 #include <visp3/core/vpConfig.h>
39 #include <visp3/core/vpDebug.h>
45 #if (defined (VISP_HAVE_GTK) || defined(VISP_HAVE_X11) || defined(VISP_HAVE_GDI) || defined(VISP_HAVE_D3D9) || defined(VISP_HAVE_OPENCV))
47 #include <visp3/core/vpImage.h>
48 #include <visp3/io/vpImageIo.h>
49 #include <visp3/io/vpParseArgv.h>
50 #include <visp3/core/vpIoTools.h>
51 #include <visp3/core/vpRect.h>
53 #include <visp3/gui/vpDisplayOpenCV.h>
54 #include <visp3/gui/vpDisplayGTK.h>
55 #include <visp3/gui/vpDisplayX.h>
56 #include <visp3/gui/vpDisplayGDI.h>
57 #include <visp3/gui/vpDisplayD3D.h>
67 #define GETOPTARGS "hldc"
69 void usage(
const char *name,
const char *badparam);
70 bool getOptions(
int argc,
const char **argv,
bool &list,
bool &click_allowed,
bool &
display);
81 void usage(
const char *name,
const char *badparam)
84 Test video devices or display.\n\
87 %s [-l] [-c] [-d] [-h]\n\
93 Disable the mouse click. Useful to automaze the \n\
94 execution of this program without humain intervention.\n\
97 Turn off the display.\n\
100 Print the list of video-devices available and exit.\n\
103 Print the help.\n\n");
106 fprintf(stdout,
"\nERROR: Bad parameter [%s]\n", badparam);
121 bool getOptions(
int argc,
const char **argv,
bool &list,
bool &click_allowed,
bool &
display)
128 case 'l': list =
true;
break;
129 case 'h': usage(argv[0], NULL);
return false;
break;
130 case 'c': click_allowed =
false;
break;
131 case 'd': display =
false;
break;
134 usage(argv[0], optarg_);
return false;
break;
138 if ((c == 1) || (c == -1)) {
140 usage(argv[0], NULL);
141 std::cerr <<
"ERROR: " << std::endl;
142 std::cerr <<
" Bad argument " << optarg_ << std::endl << std::endl;
226 vpRect rectangle(iP1, iP2);
235 main(
int argc,
const char ** argv)
238 bool opt_list =
false;
239 bool opt_click_allowed =
true;
240 bool opt_display =
true;
243 if (getOptions(argc, argv, opt_list,
244 opt_click_allowed, opt_display) ==
false) {
250 unsigned nbDevices = 0;
251 std::cout <<
"List of video-devices available: \n";
252 #if defined VISP_HAVE_GTK
253 std::cout <<
" GTK\n";
256 #if defined VISP_HAVE_X11
257 std::cout <<
" X11\n";
260 #if defined VISP_HAVE_GDI
261 std::cout <<
" GDI\n";
264 #if defined VISP_HAVE_D3D9
265 std::cout <<
" D3D\n";
268 #if defined VISP_HAVE_OPENCV
269 std::cout <<
" OpenCV\n";
273 std::cout <<
" No display is available\n";
290 #if defined VISP_HAVE_X11
293 Ix.
init(480, 640, 255);
296 displayX->
init(Ix, 100, 100,
"Display X11") ;
300 if (opt_click_allowed)
305 #if defined(VISP_HAVE_OPENCV)
308 Icv.
init(480, 640, 255);
311 displayCv->
init(Icv, 100, 100,
"Display OpenCV") ;
315 if (opt_click_allowed)
320 #if defined VISP_HAVE_GTK
323 Igtk.
init(480, 640, 255);
326 displayGtk->
init(Igtk, 100, 100,
"Display GTK") ;
330 if (opt_click_allowed)
335 #if defined VISP_HAVE_GDI
338 Igdi.
init(480, 640, 255);
341 displayGdi->
init(Igdi, 100, 100,
"Display GDI") ;
345 if (opt_click_allowed)
350 #if defined VISP_HAVE_D3D9
353 Id3d.
init(480, 640, 255);
356 displayD3d->
init(Id3d, 100, 100,
"Display Direct 3D") ;
360 if (opt_click_allowed)
365 #if defined VISP_HAVE_X11
369 #if defined VISP_HAVE_GTK
373 #if defined(VISP_HAVE_OPENCV)
377 #if defined VISP_HAVE_GDI
381 #if defined VISP_HAVE_D3D9
386 std::cout <<
"Catch an exception: " << e.
getMessage() << std::endl;
395 std::cout <<
"You do not have display functionalities..." << std::endl;
void init(vpImage< unsigned char > &I, int winx=-1, int winy=-1, const std::string &title="")
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
void init(unsigned int height, unsigned int width)
Set the size of the image.
static const vpColor black
Display for windows using GDI (available on any windows 32 platform).
vpDisplayGDI()
Basic constructor.
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
error that can be emited by ViSP classes.
void init(vpImage< unsigned char > &I, int winx=-1, int winy=-1, const std::string &title="")
static void displayPoint(const vpImage< unsigned char > &I, const vpImagePoint &ip, const vpColor &color, unsigned int thickness=1)
static const vpColor green
static void flush(const vpImage< unsigned char > &I)
static bool parse(int *argcPtr, const char **argv, vpArgvInfo *argTable, int flags)
static const vpColor orange
Display for windows using Direct3D 3rd party. Thus to enable this class Direct3D should be installed...
void set_i(const double ii)
static void displayArrow(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color=vpColor::white, unsigned int w=4, unsigned int h=2, unsigned int thickness=1)
static void display(const vpImage< unsigned char > &I)
The vpDisplayOpenCV allows to display image using the OpenCV library. Thus to enable this class OpenC...
The vpDisplayGTK allows to display image using the GTK 3rd party library. Thus to enable this class G...
const char * getMessage(void) const
static void displayRectangle(const vpImage< unsigned char > &I, const vpImagePoint &topLeft, unsigned int width, unsigned int height, const vpColor &color, bool fill=false, unsigned int thickness=1)
void init(vpImage< unsigned char > &I, int winx=-1, int winy=-1, const std::string &title="")
void set_j(const double jj)
static void displayCircle(const vpImage< unsigned char > &I, const vpImagePoint ¢er, unsigned int radius, const vpColor &color, bool fill=false, unsigned int thickness=1)
static void displayCross(const vpImage< unsigned char > &I, const vpImagePoint &ip, unsigned int size, const vpColor &color, unsigned int thickness=1)
void init(vpImage< unsigned char > &I, int winx=-1, int winy=-1, const std::string &title="")
Defines a rectangle in the plane.
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
static void displayLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1)
static const vpColor yellow
static void displayDotLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1)
static const vpColor blue