Visual Servoing Platform  version 3.6.1 under development (2024-04-25)
vpDisplay.h
1 /*
2  * ViSP, open source Visual Servoing Platform software.
3  * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
4  *
5  * This software is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  * See the file LICENSE.txt at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using ViSP with software that can not be combined with the GNU
13  * GPL, please contact Inria about acquiring a ViSP Professional
14  * Edition License.
15  *
16  * See https://visp.inria.fr for more information.
17  *
18  * This software was developed at:
19  * Inria Rennes - Bretagne Atlantique
20  * Campus Universitaire de Beaulieu
21  * 35042 Rennes Cedex
22  * France
23  *
24  * If you have questions regarding the use of this file, please contact
25  * Inria at visp@inria.fr
26  *
27  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29  *
30  * Description:
31  * Image display.
32  */
33 
34 #ifndef _vpDisplay_h_
35 #define _vpDisplay_h_
36 
37 #include <list>
38 #include <sstream>
39 #include <string>
40 
41 #include <visp3/core/vpCameraParameters.h>
42 #include <visp3/core/vpColor.h>
43 #include <visp3/core/vpHomogeneousMatrix.h>
44 #include <visp3/core/vpImage.h>
45 #include <visp3/core/vpImageCircle.h>
46 #include <visp3/core/vpImagePoint.h>
47 #include <visp3/core/vpMouseButton.h>
48 #include <visp3/core/vpPolygon.h>
49 #include <visp3/core/vpRect.h>
50 
172 class VISP_EXPORT vpDisplay
173 {
174 public:
177  typedef enum
178  {
179  SCALE_AUTO,
182  SCALE_2,
184  SCALE_3,
186  SCALE_4,
188  SCALE_5,
190  SCALE_6,
192  SCALE_7,
194  SCALE_8,
196  SCALE_9,
198  SCALE_10,
200  SCALE_DEFAULT
202  } vpScaleType;
203 
204 protected:
211  unsigned int m_width;
212  unsigned int m_height;
213  std::string m_title;
214  unsigned int m_scale;
216 
217  void setScale(vpScaleType scaleType, unsigned int width, unsigned int height);
218 
219 public:
220  vpDisplay();
221  vpDisplay(const vpDisplay &d);
222  virtual ~vpDisplay();
223 
226  unsigned int computeAutoScale(unsigned int width, unsigned int height);
231  unsigned int getDownScalingFactor() { return m_scale; }
236  inline unsigned int getHeight() const { return m_height; }
241  inline unsigned int getWidth() const { return m_width; }
242 
247  int getWindowXPosition() const { return m_windowXPosition; }
252  int getWindowYPosition() const { return m_windowYPosition; }
253 
259  inline bool isInitialised() { return m_displayHasBeenInitialized; }
260  virtual void setDownScalingFactor(unsigned int scale);
261  virtual void setDownScalingFactor(vpScaleType scaleType);
263 
264 #ifndef DOXYGEN_SHOULD_SKIP_THIS
271  virtual void clearDisplay(const vpColor &color = vpColor::white) = 0;
275  virtual void closeDisplay() = 0;
276 
286  virtual void displayArrow(const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color = vpColor::white,
287  unsigned int w = 4, unsigned int h = 2, unsigned int thickness = 1) = 0;
288 
297  inline virtual void displayCircle(const vpImageCircle &circle, const vpColor &color, bool fill = false,
298  unsigned int thickness = 1)
299  {
300  this->displayCircle(circle.getCenter(), static_cast<unsigned int>(circle.getRadius()), color, fill, thickness);
301  }
302 
312  virtual void displayCircle(const vpImagePoint &center, unsigned int radius, const vpColor &color, bool fill = false,
313  unsigned int thickness = 1) = 0;
321  virtual void displayCross(const vpImagePoint &ip, unsigned int size, const vpColor &color,
322  unsigned int thickness = 1) = 0;
330  virtual void displayDotLine(const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color,
331  unsigned int thickness = 1) = 0;
339  virtual void displayLine(const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color,
340  unsigned int thickness = 1) = 0;
341 
349  virtual void displayImage(const vpImage<unsigned char> &I) = 0;
350 
358  virtual void displayImage(const vpImage<vpRGBa> &I) = 0;
359 
360  virtual void displayImageROI(const vpImage<unsigned char> &I, const vpImagePoint &iP, unsigned int width,
361  unsigned int height) = 0;
362  virtual void displayImageROI(const vpImage<vpRGBa> &I, const vpImagePoint &iP, unsigned int width,
363  unsigned int height) = 0;
364 
371  virtual void displayPoint(const vpImagePoint &ip, const vpColor &color, unsigned int thickness = 1) = 0;
372 
386  virtual void displayRectangle(const vpImagePoint &topLeft, unsigned int width, unsigned int height,
387  const vpColor &color, bool fill = false, unsigned int thickness = 1) = 0;
400  virtual void displayRectangle(const vpImagePoint &topLeft, const vpImagePoint &bottomRight, const vpColor &color,
401  bool fill = false, unsigned int thickness = 1) = 0;
413  virtual void displayRectangle(const vpRect &rectangle, const vpColor &color, bool fill = false,
414  unsigned int thickness = 1) = 0;
415 
427  virtual void displayText(const vpImagePoint &ip, const std::string &text, const vpColor &color = vpColor::green) = 0;
428 
433  virtual void flushDisplay() = 0;
434 
439  virtual void flushDisplayROI(const vpImagePoint &iP, unsigned int width, unsigned int height) = 0;
440 
441  /* Simple interface with the mouse event */
442 
458  virtual bool getClick(bool blocking = true) = 0;
459 
475  virtual bool getClick(vpImagePoint &ip, bool blocking = true) = 0;
494  virtual bool getClick(vpImagePoint &ip, vpMouseButton::vpMouseButtonType &button, bool blocking = true) = 0;
517  virtual bool getClickUp(vpImagePoint &ip, vpMouseButton::vpMouseButtonType &button, bool blocking = true) = 0;
518 
534  virtual bool getKeyboardEvent(bool blocking = true) = 0;
553  virtual bool getKeyboardEvent(std::string &key, bool blocking = true) = 0;
564  virtual bool getPointerMotionEvent(vpImagePoint &ip) = 0;
565 
576  virtual bool getPointerPosition(vpImagePoint &ip) = 0;
577 
581  virtual unsigned int getScreenHeight() = 0;
586  virtual void getScreenSize(unsigned int &width, unsigned int &height) = 0;
590  virtual unsigned int getScreenWidth() = 0;
591 
600  virtual void init(vpImage<unsigned char> &I, int x = -1, int y = -1, const std::string &title = "") = 0;
610  virtual void init(vpImage<vpRGBa> &I, int x = -1, int y = -1, const std::string &title = "") = 0;
611 
672  virtual void init(unsigned int width, unsigned int height, int x = -1, int y = -1, const std::string &title = "") = 0;
673 
687  virtual void setFont(const std::string &font) = 0;
692  virtual void setTitle(const std::string &title) = 0;
700  virtual void setWindowPosition(int x, int y) = 0;
702 #endif // ifndef DOXYGEN_SHOULD_SKIP_THIS
703 
708  static void close(vpImage<unsigned char> &I);
709  static void display(const vpImage<unsigned char> &I);
710  static void displayArrow(const vpImage<unsigned char> &I, const vpImagePoint &ip1, const vpImagePoint &ip2,
711  const vpColor &color = vpColor::white, unsigned int w = 4, unsigned int h = 2,
712  unsigned int thickness = 1);
713  static void displayArrow(const vpImage<unsigned char> &I, int i1, int j1, int i2, int j2,
714  const vpColor &color = vpColor::white, unsigned int w = 4, unsigned int h = 2,
715  unsigned int thickness = 1);
716  static void displayCamera(const vpImage<unsigned char> &I, const vpHomogeneousMatrix &cMo,
717  const vpCameraParameters &cam, double size, const vpColor &color, unsigned int thickness);
718  static void displayCircle(const vpImage<unsigned char> &I, const vpImageCircle &circle,
719  const vpColor &color, bool fill = false, unsigned int thickness = 1);
720  static void displayCircle(const vpImage<unsigned char> &I, const vpImagePoint &center, unsigned int radius,
721  const vpColor &color, bool fill = false, unsigned int thickness = 1);
722  static void displayCircle(const vpImage<unsigned char> &I, int i, int j, unsigned int radius, const vpColor &color,
723  bool fill = false, unsigned int thickness = 1);
724  static void displayCross(const vpImage<unsigned char> &I, const vpImagePoint &ip, unsigned int size,
725  const vpColor &color, unsigned int thickness = 1);
726  static void displayCross(const vpImage<unsigned char> &I, int i, int j, unsigned int size, const vpColor &color,
727  unsigned int thickness = 1);
728  static void displayDotLine(const vpImage<unsigned char> &I, const vpImagePoint &ip1, const vpImagePoint &ip2,
729  const vpColor &color, unsigned int thickness = 1);
730  static void displayDotLine(const vpImage<unsigned char> &I, int i1, int j1, int i2, int j2, const vpColor &color,
731  unsigned int thickness = 1);
732  static void displayDotLine(const vpImage<unsigned char> &I, const std::vector<vpImagePoint> &ips, bool closeTheShape,
733  const vpColor &color, unsigned int thickness = 1);
734  static void displayDotLine(const vpImage<unsigned char> &I, const std::list<vpImagePoint> &ips, bool closeTheShape,
735  const vpColor &color, unsigned int thickness = 1);
736  static void displayEllipse(const vpImage<unsigned char> &I, const vpImagePoint &center, const double &coef1,
737  const double &coef2, const double &coef3, bool use_normalized_centered_moments,
738  const vpColor &color, unsigned int thickness = 1, bool display_center = false,
739  bool display_arc = false);
740  static void displayEllipse(const vpImage<unsigned char> &I, const vpImagePoint &center, const double &coef1,
741  const double &coef2, const double &coef3, const double &smallalpha,
742  const double &highalpha, bool use_normalized_centered_moments, const vpColor &color,
743  unsigned int thickness = 1, bool display_center = false, bool display_arc = false);
744  static void displayFrame(const vpImage<unsigned char> &I, const vpHomogeneousMatrix &cMo,
745  const vpCameraParameters &cam, double size, const vpColor &color = vpColor::none,
746  unsigned int thickness = 1, const vpImagePoint &offset = vpImagePoint(0, 0),
747  const std::string &frameName = "", const vpColor &textColor = vpColor::black, const vpImagePoint &textOffset = vpImagePoint(15, 15));
748  static void displayLine(const vpImage<unsigned char> &I, const vpImagePoint &ip1, const vpImagePoint &ip2,
749  const vpColor &color, unsigned int thickness = 1, bool segment = true);
750  static void displayLine(const vpImage<unsigned char> &I, int i1, int j1, int i2, int j2, const vpColor &color,
751  unsigned int thickness = 1, bool segment = true);
752  static void displayLine(const vpImage<unsigned char> &I, const std::vector<vpImagePoint> &ips, bool closeTheShape,
753  const vpColor &color, unsigned int thickness = 1);
754  static void displayLine(const vpImage<unsigned char> &I, const std::list<vpImagePoint> &ips, bool closeTheShape,
755  const vpColor &color, unsigned int thickness = 1);
756  static void displayPoint(const vpImage<unsigned char> &I, const vpImagePoint &ip, const vpColor &color,
757  unsigned int thickness = 1);
758  static void displayPoint(const vpImage<unsigned char> &I, int i, int j, const vpColor &color,
759  unsigned int thickness = 1);
760  static void displayPolygon(const vpImage<unsigned char> &I, const std::vector<vpImagePoint> &vip,
761  const vpColor &color, unsigned int thickness = 1, bool closed = true);
762  static void displayPolygon(const vpImage<unsigned char> &I, const vpPolygon &polygon,
763  const vpColor &color, unsigned int thickness = 1, bool closed = true);
764  static void displayRectangle(const vpImage<unsigned char> &I, const vpImagePoint &topLeft, unsigned int width,
765  unsigned int height, const vpColor &color, bool fill = false,
766  unsigned int thickness = 1);
767  static void displayRectangle(const vpImage<unsigned char> &I, const vpImagePoint &topLeft,
768  const vpImagePoint &bottomRight, const vpColor &color, bool fill = false,
769  unsigned int thickness = 1);
770  static void displayRectangle(const vpImage<unsigned char> &I, const vpRect &rectangle, const vpColor &color,
771  bool fill = false, unsigned int thickness = 1);
772  static void displayRectangle(const vpImage<unsigned char> &I, const vpImagePoint &center, float angle,
773  unsigned int width, unsigned int height, const vpColor &color,
774  unsigned int thickness = 1);
775  static void displayRectangle(const vpImage<unsigned char> &I, int i, int j, unsigned int width, unsigned int height,
776  const vpColor &color, bool fill = false, unsigned int thickness = 1);
777  static void displayRectangle(const vpImage<unsigned char> &I, unsigned int i, unsigned int j, float angle,
778  unsigned int width, unsigned int height, const vpColor &color,
779  unsigned int thickness = 1);
780  static void displayROI(const vpImage<unsigned char> &I, const vpRect &roi);
781  static void displayText(const vpImage<unsigned char> &I, const vpImagePoint &ip, const std::string &s,
782  const vpColor &color);
783  static void displayText(const vpImage<unsigned char> &I, int i, int j, const std::string &s, const vpColor &color);
784 
785  static void flush(const vpImage<unsigned char> &I);
786  static void flushROI(const vpImage<unsigned char> &I, const vpRect &roi);
787 
788  static bool getClick(const vpImage<unsigned char> &I, bool blocking = true);
789  static bool getClick(const vpImage<unsigned char> &I, vpImagePoint &ip, bool blocking = true);
790  static bool getClick(const vpImage<unsigned char> &I, vpImagePoint &ip, vpMouseButton::vpMouseButtonType &button,
791  bool blocking = true);
792  static bool getClick(const vpImage<unsigned char> &I, vpMouseButton::vpMouseButtonType &button, bool blocking = true);
793  static bool getClickUp(const vpImage<unsigned char> &I, vpImagePoint &ip, vpMouseButton::vpMouseButtonType &button,
794  bool blocking = true);
795  static bool getClickUp(const vpImage<unsigned char> &I, vpMouseButton::vpMouseButtonType &button,
796  bool blocking = true);
797  static unsigned int getDownScalingFactor(const vpImage<unsigned char> &I);
798  static void getImage(const vpImage<unsigned char> &Is, vpImage<vpRGBa> &Id);
799  static bool getKeyboardEvent(const vpImage<unsigned char> &I, bool blocking = true);
800  static bool getKeyboardEvent(const vpImage<unsigned char> &I, std::string &key, bool blocking = true);
801  static bool getKeyboardEvent(const vpImage<unsigned char> &I, char *key, bool blocking = true);
802  static bool getPointerMotionEvent(const vpImage<unsigned char> &I, vpImagePoint &ip);
803  static bool getPointerPosition(const vpImage<unsigned char> &I, vpImagePoint &ip);
804 
805  static void setBackground(const vpImage<unsigned char> &I, const vpColor &color);
806  static void setFont(const vpImage<unsigned char> &I, const std::string &font);
807  static void setTitle(const vpImage<unsigned char> &I, const std::string &windowtitle);
808  static void setWindowPosition(const vpImage<unsigned char> &I, int winx, int winy);
810 
815  static void close(vpImage<vpRGBa> &I);
816  static void display(const vpImage<vpRGBa> &I);
817  static void displayArrow(const vpImage<vpRGBa> &I, const vpImagePoint &ip1, const vpImagePoint &ip2,
818  const vpColor &color = vpColor::white, unsigned int w = 4, unsigned int h = 2,
819  unsigned int thickness = 1);
820  static void displayArrow(const vpImage<vpRGBa> &I, int i1, int j1, int i2, int j2,
821  const vpColor &color = vpColor::white, unsigned int w = 4, unsigned int h = 2,
822  unsigned int thickness = 1);
823  static void displayCamera(const vpImage<vpRGBa> &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam,
824  double size, const vpColor &color, unsigned int thickness);
825  static void displayCircle(const vpImage<vpRGBa> &I, const vpImageCircle &circle,
826  const vpColor &color, bool fill = false, unsigned int thickness = 1);
827  static void displayCircle(const vpImage<vpRGBa> &I, const vpImagePoint &center, unsigned int radius,
828  const vpColor &color, bool fill = false, unsigned int thickness = 1);
829  static void displayCircle(const vpImage<vpRGBa> &I, int i, int j, unsigned int radius, const vpColor &color,
830  bool fill = false, unsigned int thickness = 1);
831  static void displayCross(const vpImage<vpRGBa> &I, const vpImagePoint &ip, unsigned int size, const vpColor &color,
832  unsigned int thickness = 1);
833  static void displayCross(const vpImage<vpRGBa> &I, int i, int j, unsigned int size, const vpColor &color,
834  unsigned int thickness = 1);
835  static void displayDotLine(const vpImage<vpRGBa> &I, const vpImagePoint &ip1, const vpImagePoint &ip2,
836  const vpColor &color, unsigned int thickness = 1);
837  static void displayDotLine(const vpImage<vpRGBa> &I, int i1, int j1, int i2, int j2, const vpColor &color,
838  unsigned int thickness = 1);
839  static void displayDotLine(const vpImage<vpRGBa> &I, const std::vector<vpImagePoint> &ips, bool closeTheShape,
840  const vpColor &color, unsigned int thickness = 1);
841  static void displayDotLine(const vpImage<vpRGBa> &I, const std::list<vpImagePoint> &ips, bool closeTheShape,
842  const vpColor &color, unsigned int thickness = 1);
843  static void displayEllipse(const vpImage<vpRGBa> &I, const vpImagePoint &center, const double &coef1,
844  const double &coef2, const double &coef3, bool use_centered_moments, const vpColor &color,
845  unsigned int thickness = 1, bool display_center = false, bool display_arc = false);
846  static void displayEllipse(const vpImage<vpRGBa> &I, const vpImagePoint &center, const double &coef1,
847  const double &coef2, const double &coef3, const double &theta1, const double &theta2,
848  bool use_centered_moments, const vpColor &color, unsigned int thickness = 1,
849  bool display_center = false, bool display_arc = false);
850  static void displayFrame(const vpImage<vpRGBa> &I, const vpHomogeneousMatrix &cMo, const vpCameraParameters &cam,
851  double size, const vpColor &color = vpColor::none, unsigned int thickness = 1,
852  const vpImagePoint &offset = vpImagePoint(0, 0), const std::string &frameName = "",
853  const vpColor &textColor = vpColor::black, const vpImagePoint &textOffset = vpImagePoint(15, 15));
854  static void displayLine(const vpImage<vpRGBa> &I, const vpImagePoint &ip1, const vpImagePoint &ip2,
855  const vpColor &color, unsigned int thickness = 1, bool segment = true);
856  static void displayLine(const vpImage<vpRGBa> &I, int i1, int j1, int i2, int j2, const vpColor &color,
857  unsigned int thickness = 1, bool segment = true);
858  static void displayLine(const vpImage<vpRGBa> &I, const std::vector<vpImagePoint> &ips, bool closeTheShape,
859  const vpColor &color, unsigned int thickness = 1);
860  static void displayLine(const vpImage<vpRGBa> &I, const std::list<vpImagePoint> &ips, bool closeTheShape,
861  const vpColor &color, unsigned int thickness = 1);
862  static void displayPoint(const vpImage<vpRGBa> &I, const vpImagePoint &ip, const vpColor &color,
863  unsigned int thickness = 1);
864  static void displayPoint(const vpImage<vpRGBa> &I, int i, int j, const vpColor &color, unsigned int thickness = 1);
865  static void displayPolygon(const vpImage<vpRGBa> &I, const std::vector<vpImagePoint> &vip, const vpColor &color,
866  unsigned int thickness = 1, bool closed = true);
867  static void displayPolygon(const vpImage<vpRGBa> &I, const vpPolygon &polygon,
868  const vpColor &color, unsigned int thickness = 1, bool closed = true);
869  static void displayRectangle(const vpImage<vpRGBa> &I, const vpImagePoint &topLeft, unsigned int width,
870  unsigned int height, const vpColor &color, bool fill = false,
871  unsigned int thickness = 1);
872  static void displayRectangle(const vpImage<vpRGBa> &I, const vpImagePoint &topLeft, const vpImagePoint &bottomRight,
873  const vpColor &color, bool fill = false, unsigned int thickness = 1);
874  static void displayRectangle(const vpImage<vpRGBa> &I, const vpRect &rectangle, const vpColor &color,
875  bool fill = false, unsigned int thickness = 1);
876  static void displayRectangle(const vpImage<vpRGBa> &I, const vpImagePoint &center, float angle, unsigned int width,
877  unsigned int height, const vpColor &color, unsigned int thickness = 1);
878  static void displayRectangle(const vpImage<vpRGBa> &I, int i, int j, unsigned int width, unsigned int height,
879  const vpColor &color, bool fill = false, unsigned int thickness = 1);
880  static void displayRectangle(const vpImage<vpRGBa> &I, unsigned int i, unsigned int j, float angle,
881  unsigned int width, unsigned int height, const vpColor &color,
882  unsigned int thickness = 1);
883  static void displayROI(const vpImage<vpRGBa> &I, const vpRect &roi);
884  static void displayText(const vpImage<vpRGBa> &I, const vpImagePoint &ip, const std::string &s, const vpColor &color);
885  static void displayText(const vpImage<vpRGBa> &I, int i, int j, const std::string &s, const vpColor &color);
886 
887  static void flush(const vpImage<vpRGBa> &I);
888  static void flushROI(const vpImage<vpRGBa> &I, const vpRect &roi);
889 
890  static bool getClick(const vpImage<vpRGBa> &I, bool blocking = true);
891  static bool getClick(const vpImage<vpRGBa> &I, vpImagePoint &ip, bool blocking = true);
892  static bool getClick(const vpImage<vpRGBa> &I, vpImagePoint &ip, vpMouseButton::vpMouseButtonType &button,
893  bool blocking = true);
894  static bool getClick(const vpImage<vpRGBa> &I, vpMouseButton::vpMouseButtonType &button, bool blocking = true);
895  static bool getClickUp(const vpImage<vpRGBa> &I, vpImagePoint &ip, vpMouseButton::vpMouseButtonType &button,
896  bool blocking = true);
897  static bool getClickUp(const vpImage<vpRGBa> &I, vpMouseButton::vpMouseButtonType &button, bool blocking = true);
898  static unsigned int getDownScalingFactor(const vpImage<vpRGBa> &I);
899  static void getImage(const vpImage<vpRGBa> &Is, vpImage<vpRGBa> &Id);
900  static bool getKeyboardEvent(const vpImage<vpRGBa> &I, bool blocking = true);
901  static bool getKeyboardEvent(const vpImage<vpRGBa> &I, std::string &key, bool blocking = true);
902  static bool getKeyboardEvent(const vpImage<vpRGBa> &I, char *key, bool blocking = true);
903  static bool getPointerMotionEvent(const vpImage<vpRGBa> &I, vpImagePoint &ip);
904  static bool getPointerPosition(const vpImage<vpRGBa> &I, vpImagePoint &ip);
905 
906  static void setBackground(const vpImage<vpRGBa> &I, const vpColor &color);
907  static void setFont(const vpImage<vpRGBa> &I, const std::string &font);
908  static void setTitle(const vpImage<vpRGBa> &I, const std::string &windowtitle);
909  static void setWindowPosition(const vpImage<vpRGBa> &I, int winx, int winy);
911 
912 #if defined(VISP_BUILD_DEPRECATED_FUNCTIONS)
917  vp_deprecated static void displayCharString(const vpImage<unsigned char> &I, const vpImagePoint &ip, const char *string,
918  const vpColor &color);
919  vp_deprecated static void displayCharString(const vpImage<unsigned char> &I, int i, int j, const char *string,
920  const vpColor &color);
921  vp_deprecated static void displayCharString(const vpImage<vpRGBa> &I, const vpImagePoint &ip, const char *string,
922  const vpColor &color);
923  vp_deprecated static void displayCharString(const vpImage<vpRGBa> &I, int i, int j, const char *string,
924  const vpColor &color);
926 #endif
927 
928 private:
930  virtual void getImage(vpImage<vpRGBa> &I) = 0;
931 };
932 
933 #endif
Generic class defining intrinsic camera parameters.
Class to define RGB colors available for display functionalities.
Definition: vpColor.h:152
static const vpColor white
Definition: vpColor.h:206
static const vpColor black
Definition: vpColor.h:205
static const vpColor none
Definition: vpColor.h:223
static const vpColor green
Definition: vpColor.h:214
Class that defines generic functionalities for display.
Definition: vpDisplay.h:173
unsigned int m_height
Definition: vpDisplay.h:212
vpScaleType m_scaleType
Definition: vpDisplay.h:215
unsigned int m_width
Definition: vpDisplay.h:211
int getWindowXPosition() const
Definition: vpDisplay.h:247
bool isInitialised()
Definition: vpDisplay.h:259
int m_windowXPosition
display position
Definition: vpDisplay.h:208
std::string m_title
Definition: vpDisplay.h:213
int m_windowYPosition
display position
Definition: vpDisplay.h:210
unsigned int m_scale
Definition: vpDisplay.h:214
int getWindowYPosition() const
Definition: vpDisplay.h:252
unsigned int getHeight() const
Definition: vpDisplay.h:236
bool m_displayHasBeenInitialized
display has been initialized
Definition: vpDisplay.h:206
unsigned int getDownScalingFactor()
Definition: vpDisplay.h:231
unsigned int getWidth() const
Definition: vpDisplay.h:241
Implementation of an homogeneous matrix and operations on such kind of matrices.
Class that defines a 2D circle in an image.
Definition: vpImageCircle.h:56
float getRadius() const
vpImagePoint getCenter() const
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Definition: vpImagePoint.h:82
Defines a generic 2D polygon.
Definition: vpPolygon.h:97
Defines a rectangle in the plane.
Definition: vpRect.h:76
void display(vpImage< unsigned char > &I, const std::string &title)
Display a gray-scale image.
void init(vpImage< unsigned char > &Iinput, vpImage< unsigned char > &IcannyVisp, vpImage< unsigned char > *p_dIx, vpImage< unsigned char > *p_dIy, vpImage< unsigned char > *p_IcannyimgFilter)
Initialize the different displays.