00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #ifndef __OPENCV_HIGHGUI_HPP__
00044 #define __OPENCV_HIGHGUI_HPP__
00045
00046 #include "opencv2/core/core.hpp"
00047 #include "opencv2/highgui/highgui_c.h"
00048
00049 #ifdef __cplusplus
00050
00051 struct CvCapture;
00052 struct CvVideoWriter;
00053
00054 namespace cv
00055 {
00056
00057 enum {
00058
00059 WINDOW_NORMAL = CV_WINDOW_NORMAL,
00060 WINDOW_AUTOSIZE = CV_WINDOW_AUTOSIZE,
00061 WINDOW_OPENGL = CV_WINDOW_OPENGL,
00062
00063
00064 WND_PROP_FULLSCREEN = CV_WND_PROP_FULLSCREEN,
00065 WND_PROP_AUTOSIZE = CV_WND_PROP_AUTOSIZE,
00066 WND_PROP_ASPECT_RATIO = CV_WND_PROP_ASPECTRATIO,
00067 WND_PROP_OPENGL = CV_WND_PROP_OPENGL
00068 };
00069
00070 CV_EXPORTS_W void namedWindow(const string& winname, int flags = WINDOW_AUTOSIZE);
00071 CV_EXPORTS_W void destroyWindow(const string& winname);
00072 CV_EXPORTS_W void destroyAllWindows();
00073
00074 CV_EXPORTS_W int startWindowThread();
00075
00076 CV_EXPORTS_W int waitKey(int delay = 0);
00077
00078 CV_EXPORTS_W void imshow(const string& winname, InputArray mat);
00079
00080 CV_EXPORTS_W void resizeWindow(const string& winname, int width, int height);
00081 CV_EXPORTS_W void moveWindow(const string& winname, int x, int y);
00082
00083 CV_EXPORTS_W void setWindowProperty(const string& winname, int prop_id, double prop_value);
00084 CV_EXPORTS_W double getWindowProperty(const string& winname, int prop_id);
00085
00086 enum
00087 {
00088 EVENT_MOUSEMOVE =0,
00089 EVENT_LBUTTONDOWN =1,
00090 EVENT_RBUTTONDOWN =2,
00091 EVENT_MBUTTONDOWN =3,
00092 EVENT_LBUTTONUP =4,
00093 EVENT_RBUTTONUP =5,
00094 EVENT_MBUTTONUP =6,
00095 EVENT_LBUTTONDBLCLK =7,
00096 EVENT_RBUTTONDBLCLK =8,
00097 EVENT_MBUTTONDBLCLK =9
00098 };
00099
00100 enum
00101 {
00102 EVENT_FLAG_LBUTTON =1,
00103 EVENT_FLAG_RBUTTON =2,
00104 EVENT_FLAG_MBUTTON =4,
00105 EVENT_FLAG_CTRLKEY =8,
00106 EVENT_FLAG_SHIFTKEY =16,
00107 EVENT_FLAG_ALTKEY =32
00108 };
00109
00110 typedef void (*MouseCallback)(int event, int x, int y, int flags, void* userdata);
00111
00113 CV_EXPORTS void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata = 0);
00114
00115
00116 typedef void (CV_CDECL *TrackbarCallback)(int pos, void* userdata);
00117
00118 CV_EXPORTS int createTrackbar(const string& trackbarname, const string& winname,
00119 int* value, int count,
00120 TrackbarCallback onChange = 0,
00121 void* userdata = 0);
00122
00123 CV_EXPORTS_W int getTrackbarPos(const string& trackbarname, const string& winname);
00124 CV_EXPORTS_W void setTrackbarPos(const string& trackbarname, const string& winname, int pos);
00125
00126
00127
00128 typedef void (*OpenGlDrawCallback)(void* userdata);
00129 CV_EXPORTS void setOpenGlDrawCallback(const string& winname, OpenGlDrawCallback onOpenGlDraw, void* userdata = 0);
00130
00131 CV_EXPORTS void setOpenGlContext(const string& winname);
00132
00133 CV_EXPORTS void updateWindow(const string& winname);
00134
00135 CV_EXPORTS void pointCloudShow(const string& winname, const GlCamera& camera, const GlArrays& arr);
00136 CV_EXPORTS void pointCloudShow(const string& winname, const GlCamera& camera, InputArray points, InputArray colors = noArray());
00137
00138
00139
00140 CV_EXPORTS CvFont fontQt(const string& nameFont, int pointSize=-1,
00141 Scalar color=Scalar::all(0), int weight=CV_FONT_NORMAL,
00142 int style=CV_STYLE_NORMAL, int spacing=0);
00143 CV_EXPORTS void addText( const Mat& img, const string& text, Point org, CvFont font);
00144
00145 CV_EXPORTS void displayOverlay(const string& winname, const string& text, int delayms CV_DEFAULT(0));
00146 CV_EXPORTS void displayStatusBar(const string& winname, const string& text, int delayms CV_DEFAULT(0));
00147
00148 CV_EXPORTS void saveWindowParameters(const string& windowName);
00149 CV_EXPORTS void loadWindowParameters(const string& windowName);
00150 CV_EXPORTS int startLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* argv[]);
00151 CV_EXPORTS void stopLoop();
00152
00153 typedef void (CV_CDECL *ButtonCallback)(int state, void* userdata);
00154 CV_EXPORTS int createButton( const string& bar_name, ButtonCallback on_change,
00155 void* userdata=NULL, int type=CV_PUSH_BUTTON,
00156 bool initial_button_state=0);
00157
00158
00159
00160 enum
00161 {
00162
00163 IMREAD_UNCHANGED =-1,
00164
00165 IMREAD_GRAYSCALE =0,
00166
00167 IMREAD_COLOR =1,
00168
00169 IMREAD_ANYDEPTH =2,
00170
00171 IMREAD_ANYCOLOR =4
00172 };
00173
00174 enum
00175 {
00176 IMWRITE_JPEG_QUALITY =1,
00177 IMWRITE_PNG_COMPRESSION =16,
00178 IMWRITE_PNG_STRATEGY =17,
00179 IMWRITE_PNG_BILEVEL =18,
00180 IMWRITE_PNG_STRATEGY_DEFAULT =0,
00181 IMWRITE_PNG_STRATEGY_FILTERED =1,
00182 IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY =2,
00183 IMWRITE_PNG_STRATEGY_RLE =3,
00184 IMWRITE_PNG_STRATEGY_FIXED =4,
00185 IMWRITE_PXM_BINARY =32
00186 };
00187
00188 CV_EXPORTS_W Mat imread( const string& filename, int flags=1 );
00189 CV_EXPORTS_W bool imwrite( const string& filename, InputArray img,
00190 const vector<int>& params=vector<int>());
00191 CV_EXPORTS_W Mat imdecode( InputArray buf, int flags );
00192 CV_EXPORTS Mat imdecode( InputArray buf, int flags, Mat* dst );
00193 CV_EXPORTS_W bool imencode( const string& ext, InputArray img,
00194 CV_OUT vector<uchar>& buf,
00195 const vector<int>& params=vector<int>());
00196
00197 #ifndef CV_NO_VIDEO_CAPTURE_CPP_API
00198
00199 template<> void CV_EXPORTS Ptr<CvCapture>::delete_obj();
00200 template<> void CV_EXPORTS Ptr<CvVideoWriter>::delete_obj();
00201
00202 class CV_EXPORTS_W VideoCapture
00203 {
00204 public:
00205 CV_WRAP VideoCapture();
00206 CV_WRAP VideoCapture(const string& filename);
00207 CV_WRAP VideoCapture(int device);
00208
00209 virtual ~VideoCapture();
00210 CV_WRAP virtual bool open(const string& filename);
00211 CV_WRAP virtual bool open(int device);
00212 CV_WRAP virtual bool isOpened() const;
00213 CV_WRAP virtual void release();
00214
00215 CV_WRAP virtual bool grab();
00216 CV_WRAP virtual bool retrieve(CV_OUT Mat& image, int channel=0);
00217 virtual VideoCapture& operator >> (CV_OUT Mat& image);
00218 CV_WRAP virtual bool read(CV_OUT Mat& image);
00219
00220 CV_WRAP virtual bool set(int propId, double value);
00221 CV_WRAP virtual double get(int propId);
00222
00223 protected:
00224 Ptr<CvCapture> cap;
00225 };
00226
00227
00228 class CV_EXPORTS_W VideoWriter
00229 {
00230 public:
00231 CV_WRAP VideoWriter();
00232 CV_WRAP VideoWriter(const string& filename, int fourcc, double fps,
00233 Size frameSize, bool isColor=true);
00234
00235 virtual ~VideoWriter();
00236 CV_WRAP virtual bool open(const string& filename, int fourcc, double fps,
00237 Size frameSize, bool isColor=true);
00238 CV_WRAP virtual bool isOpened() const;
00239 CV_WRAP virtual void release();
00240 virtual VideoWriter& operator << (const Mat& image);
00241 CV_WRAP virtual void write(const Mat& image);
00242
00243 protected:
00244 Ptr<CvVideoWriter> writer;
00245 };
00246
00247 #endif
00248
00249 }
00250
00251 #endif
00252
00253 #endif