highgui.hpp
上传用户:soukeisyuu
上传日期:2022-07-03
资源大小:5943k
文件大小:5k
源码类别:

波变换

开发平台:

Visual C++

  1. /*M///////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
  4. //
  5. //  By downloading, copying, installing or using the software you agree to this license.
  6. //  If you do not agree to this license, do not download, install,
  7. //  copy or use the software.
  8. //
  9. //
  10. //                          License Agreement
  11. //                For Open Source Computer Vision Library
  12. //
  13. // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
  14. // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
  15. // Third party copyrights are property of their respective owners.
  16. //
  17. // Redistribution and use in source and binary forms, with or without modification,
  18. // are permitted provided that the following conditions are met:
  19. //
  20. //   * Redistribution's of source code must retain the above copyright notice,
  21. //     this list of conditions and the following disclaimer.
  22. //
  23. //   * Redistribution's in binary form must reproduce the above copyright notice,
  24. //     this list of conditions and the following disclaimer in the documentation
  25. //     and/or other materials provided with the distribution.
  26. //
  27. //   * The name of the copyright holders may not be used to endorse or promote products
  28. //     derived from this software without specific prior written permission.
  29. //
  30. // This software is provided by the copyright holders and contributors "as is" and
  31. // any express or implied warranties, including, but not limited to, the implied
  32. // warranties of merchantability and fitness for a particular purpose are disclaimed.
  33. // In no event shall the Intel Corporation or contributors be liable for any direct,
  34. // indirect, incidental, special, exemplary, or consequential damages
  35. // (including, but not limited to, procurement of substitute goods or services;
  36. // loss of use, data, or profits; or business interruption) however caused
  37. // and on any theory of liability, whether in contract, strict liability,
  38. // or tort (including negligence or otherwise) arising in any way out of
  39. // the use of this software, even if advised of the possibility of such damage.
  40. //
  41. //M*/
  42. #ifndef _HIGHGUI_HPP_
  43. #define _HIGHGUI_HPP_
  44. #ifdef __cplusplus
  45. namespace cv
  46. {
  47. // To be extended
  48. CV_EXPORTS void namedWindow( const string& winname, int flags );
  49. CV_EXPORTS void imshow( const string& winname, const Mat& mat );
  50. typedef CvTrackbarCallback2 TrackbarCallback;
  51. CV_EXPORTS int createTrackbar( const string& trackbarname, const string& winname,
  52.                                int* value, int count,
  53.                                TrackbarCallback onChange CV_DEFAULT(0),
  54.                                void* userdata CV_DEFAULT(0));
  55. CV_EXPORTS int getTrackbarPos( const string& trackbarname, const string& winname );
  56. CV_EXPORTS void setTrackbarPos( const string& trackbarname, const string& winname, int pos );
  57. CV_EXPORTS Mat imread( const string& filename, int flags=1 );
  58. CV_EXPORTS bool imwrite( const string& filename, const Mat& img,
  59.               const vector<int>& params=vector<int>());
  60. CV_EXPORTS Mat imdecode( const Mat& buf, int flags );
  61. CV_EXPORTS bool imencode( const string& ext, const Mat& img,
  62.                           vector<uchar>& buf,
  63.                           const vector<int>& params=vector<int>());
  64. CV_EXPORTS int waitKey(int delay=0);
  65. #ifndef CV_NO_VIDEO_CAPTURE_CPP_API
  66. template<> inline void Ptr<CvCapture>::delete_obj()
  67. { cvReleaseCapture(&obj); }
  68.     
  69. template<> inline void Ptr<CvVideoWriter>::delete_obj()
  70. { cvReleaseVideoWriter(&obj); }
  71. class CV_EXPORTS VideoCapture
  72. {
  73. public:
  74.     VideoCapture();
  75.     VideoCapture(const string& filename);
  76.     VideoCapture(int device);
  77.     
  78.     virtual ~VideoCapture();
  79.     virtual bool open(const string& filename);
  80.     virtual bool open(int device);
  81.     virtual bool isOpened() const;
  82.     virtual void release();
  83.     
  84.     virtual bool grab();
  85.     virtual bool retrieve(Mat& image, int channel=0);
  86.     virtual VideoCapture& operator >> (Mat& image);
  87.     
  88.     virtual bool set(int propId, double value);
  89.     virtual double get(int propId);
  90.     
  91. protected:
  92.     Ptr<CvCapture> cap;
  93. };
  94.     
  95. class CV_EXPORTS VideoWriter
  96. {
  97. public:    
  98.     VideoWriter();
  99.     VideoWriter(const string& filename, int fourcc, double fps, Size frameSize, bool isColor=true);
  100.     
  101.     virtual ~VideoWriter();
  102.     virtual bool open(const string& filename, int fourcc, double fps, Size frameSize, bool isColor=true);
  103.     virtual bool isOpened() const;
  104.     virtual VideoWriter& operator << (const Mat& image);
  105.     
  106. protected:
  107.     Ptr<CvVideoWriter> writer;
  108. };
  109. #endif
  110. }
  111. #endif
  112. #endif /* _HIGHGUI_HPP_ */