44#include <visp3/core/vpImage.h>
45#include <visp3/core/vpImageConvert.h>
46#include <visp3/core/vpPolygon.h>
47#include <visp3/core/vpRect.h>
48#include <visp3/gui/vpDisplayD3D.h>
49#include <visp3/gui/vpDisplayGDI.h>
50#include <visp3/gui/vpDisplayGTK.h>
51#include <visp3/gui/vpDisplayOpenCV.h>
52#include <visp3/gui/vpDisplayX.h>
53#include <visp3/io/vpParseArgv.h>
56#define GETOPTARGS "cdh"
58void usage(
const char *name,
const char *badparam);
59bool getOptions(
int argc,
const char **argv,
bool &click_allowed,
bool &display);
68void usage(
const char *name,
const char *badparam)
71Display polygon lines.\n\
80 Disable the mouse click. Useful to automate the \n\
81 execution of this program without human intervention.\n\
84 Disable the image display. This can be useful \n\
85 for automatic tests. \n\
88 Print the help.\n\n");
91 fprintf(stderr,
"ERROR: \n");
92 fprintf(stderr,
"\nBad parameter [%s]\n", badparam);
110bool getOptions(
int argc,
const char **argv,
bool &click_allowed,
bool &display)
118 click_allowed =
false;
124 usage(argv[0], NULL);
129 usage(argv[0], optarg_);
135 if ((c == 1) || (c == -1)) {
137 usage(argv[0], NULL);
138 std::cerr <<
"ERROR: " << std::endl;
139 std::cerr <<
" Bad argument " << optarg_ << std::endl << std::endl;
146int main(
int argc,
const char **argv)
148#ifdef VISP_HAVE_DISPLAY
149 bool opt_click_allowed =
true;
150 bool opt_display =
true;
153 if (getOptions(argc, argv, opt_click_allowed, opt_display) ==
false) {
157 if (opt_display && opt_click_allowed) {
161#if defined(VISP_HAVE_X11)
163#elif defined(VISP_HAVE_GTK)
165#elif defined(VISP_HAVE_GDI)
167#elif defined(VISP_HAVE_D3D9)
169#elif defined(HAVE_OPENCV_HIGHGUI)
172 d.
init(I, 0, 0,
"Grayscale image");
195 for (
unsigned int i = 0; i < I_color.getHeight(); i++) {
196 double hue = i / (double)I_color.getHeight(), saturation = 1.0, value = 1.0;
197 unsigned char rgb[3];
200 for (
unsigned int j = 0; j < I_color.getWidth(); j++) {
201 I_color[i][j].R = rgb[0];
202 I_color[i][j].G = rgb[1];
203 I_color[i][j].B = rgb[2];
static const vpColor black
Display for windows using Direct3D 3rd party. Thus to enable this class Direct3D should be installed....
Display for windows using GDI (available on any windows 32 platform).
The vpDisplayGTK allows to display image using the GTK 3rd party library. Thus to enable this class G...
The vpDisplayOpenCV allows to display image using the OpenCV library. Thus to enable this class OpenC...
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
void init(vpImage< unsigned char > &I, int win_x=-1, int win_y=-1, const std::string &win_title="")
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
static void display(const vpImage< unsigned char > &I)
static void displayLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1, bool segment=true)
static void flush(const vpImage< unsigned char > &I)
static void displayDotLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1)
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
static void HSVToRGB(const double *hue, const double *saturation, const double *value, unsigned char *rgb, unsigned int size)
Definition of the vpImage class member functions.
unsigned int getWidth() const
static bool parse(int *argcPtr, const char **argv, vpArgvInfo *argTable, int flags)
Defines a generic 2D polygon.
const std::vector< vpImagePoint > & getCorners() const
void initClick(const vpImage< unsigned char > &I, unsigned int size=5, const vpColor &color=vpColor::red, unsigned int thickness=1)