16acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/*M/////////////////////////////////////////////////////////////////////////////////////// 26acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 36acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. 46acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 56acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// By downloading, copying, installing or using the software you agree to this license. 66acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// If you do not agree to this license, do not download, install, 76acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// copy or use the software. 86acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 96acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Intel License Agreement 116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// For Open Source Computer Vision Library 126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Copyright (C) 2000, Intel Corporation, all rights reserved. 146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Third party copyrights are property of their respective owners. 156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Redistribution and use in source and binary forms, with or without modification, 176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// are permitted provided that the following conditions are met: 186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// * Redistribution's of source code must retain the above copyright notice, 206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// this list of conditions and the following disclaimer. 216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// * Redistribution's in binary form must reproduce the above copyright notice, 236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// this list of conditions and the following disclaimer in the documentation 246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// and/or other materials provided with the distribution. 256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// * The name of Intel Corporation may not be used to endorse or promote products 276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// derived from this software without specific prior written permission. 286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// This software is provided by the copyright holders and contributors "as is" and 306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// any express or implied warranties, including, but not limited to, the implied 316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// warranties of merchantability and fitness for a particular purpose are disclaimed. 326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// In no event shall the Intel Corporation or contributors be liable for any direct, 336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// indirect, incidental, special, exemplary, or consequential damages 346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// (including, but not limited to, procurement of substitute goods or services; 356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// loss of use, data, or profits; or business interruption) however caused 366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// and on any theory of liability, whether in contract, strict liability, 376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// or tort (including negligence or otherwise) arising in any way out of 386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// the use of this software, even if advised of the possibility of such damage. 396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// 406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//M*/ 416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef _HIGH_GUI_ 436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define _HIGH_GUI_ 446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef SKIP_INCLUDES 466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #include "cxcore.h" 486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #if defined WIN32 || defined WIN64 496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #include <windows.h> 506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#else // SKIP_INCLUDES 536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #if defined WIN32 || defined WIN64 556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_CDECL __cdecl 566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_STDCALL __stdcall 576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #else 586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_CDECL 596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_STDCALL 606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #ifndef CV_EXTERN_C 636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #ifdef __cplusplus 646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_EXTERN_C extern "C" 656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_DEFAULT(val) = val 666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #else 676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_EXTERN_C 686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_DEFAULT(val) 696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #ifndef CV_EXTERN_C_FUNCPTR 736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #ifdef __cplusplus 746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_EXTERN_C_FUNCPTR(x) extern "C" { typedef x; } 756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #else 766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_EXTERN_C_FUNCPTR(x) typedef x 776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 806acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #ifndef CV_INLINE 816acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #if defined __cplusplus 826acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_INLINE inline 836acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #elif (defined WIN32 || defined WIN64) && !defined __GNUC__ 846acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_INLINE __inline 856acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #else 866acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_INLINE static 876acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 886acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif /* CV_INLINE */ 896acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 906acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #if (defined WIN32 || defined WIN64) && defined CVAPI_EXPORTS 916acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_EXPORTS __declspec(dllexport) 926acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #else 936acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CV_EXPORTS 946acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 956acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 966acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #ifndef CVAPI 976acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL 986acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #endif 996acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1006acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif // SKIP_INCLUDES 1016acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1026acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#if defined(_CH_) 1036acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #pragma package <chopencv> 1046acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #include <chdl.h> 1056acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn LOAD_CHDL(highgui) 1066acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif 1076acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1086acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef __cplusplus 1096acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn extern "C" { 1106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif /* __cplusplus */ 1116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_MOUSEMOVE 0 1136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_LBUTTONDOWN 1 1146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_RBUTTONDOWN 2 1156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_MBUTTONDOWN 3 1166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_LBUTTONUP 4 1176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_RBUTTONUP 5 1186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_MBUTTONUP 6 1196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_LBUTTONDBLCLK 7 1206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_RBUTTONDBLCLK 8 1216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_MBUTTONDBLCLK 9 1226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_FLAG_LBUTTON 1 1246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_FLAG_RBUTTON 2 1256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_FLAG_MBUTTON 4 1266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_FLAG_CTRLKEY 8 1276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_FLAG_SHIFTKEY 16 1286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_EVENT_FLAG_ALTKEY 32 1296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* 8bit, color or not */ 1326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_LOAD_IMAGE_UNCHANGED -1 1336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* 8bit, gray */ 1346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_LOAD_IMAGE_GRAYSCALE 0 1356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* ?, color */ 1366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_LOAD_IMAGE_COLOR 1 1376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* any depth, ? */ 1386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_LOAD_IMAGE_ANYDEPTH 2 1396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* ?, any color */ 1406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_LOAD_IMAGE_ANYCOLOR 4 1416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* load image from file 1436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn iscolor can be a combination of above flags where CV_LOAD_IMAGE_UNCHANGED 1446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn overrides the other flags 1456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn using CV_LOAD_IMAGE_ANYCOLOR alone is equivalent to CV_LOAD_IMAGE_UNCHANGED 1466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn unless CV_LOAD_IMAGE_ANYDEPTH is specified images are converted to 8bit 1476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn*/ 1486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(IplImage*) cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); 1496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(CvMat*) cvLoadImageM( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); 1506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* save image to file */ 1526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(int) cvSaveImage( const char* filename, const CvArr* image ); 1536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CVTIMG_FLIP 1 1556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CVTIMG_SWAP_RB 2 1566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* utility function: convert one image to another with optional vertical flip */ 1576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(void) cvConvertImage( const CvArr* src, CvArr* dst, int flags CV_DEFAULT(0)); 1586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* wait for key event infinitely (delay<=0) or for "delay" milliseconds */ 1606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(int) cvWaitKey(int delay CV_DEFAULT(0)); 1616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/****************************************************************************************\ 1646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn* Working with Video Files and Cameras * 1656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn\****************************************************************************************/ 1666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* "black box" capture structure */ 1686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renntypedef struct CvCapture CvCapture; 1696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* start capturing frames from video file */ 1716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(CvCapture*) cvCreateSocketCapture( const char *address, const char* port, int width, int height ); 1726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* grab a frame, return 1 on success, 0 on fail. 1746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn this function is thought to be fast */ 1756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(int) cvGrabFrame( CvCapture* capture ); 1766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* get the frame grabbed with cvGrabFrame(..) 1786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn This function may apply some frame processing like 1796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn frame decompression, flipping etc. 1806acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn !!!DO NOT RELEASE or MODIFY the retrieved frame!!! */ 1816acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture ); 1826acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1836acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* Just a combination of cvGrabFrame and cvRetrieveFrame 1846acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn !!!DO NOT RELEASE or MODIFY the retrieved frame!!! */ 1856acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(IplImage*) cvQueryFrame( CvCapture* capture ); 1866acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1876acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* stop capturing/reading and free resources */ 1886acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(void) cvReleaseCapture( CvCapture** capture ); 1896acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 1906acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_POS_MSEC 0 1916acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_POS_FRAMES 1 1926acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_POS_AVI_RATIO 2 1936acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_FRAME_WIDTH 3 1946acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_FRAME_HEIGHT 4 1956acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_FPS 5 1966acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_FOURCC 6 1976acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_FRAME_COUNT 7 1986acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_FORMAT 8 1996acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_MODE 9 2006acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_BRIGHTNESS 10 2016acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_CONTRAST 11 2026acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_SATURATION 12 2036acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_HUE 13 2046acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_GAIN 14 2056acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CV_CAP_PROP_CONVERT_RGB 15 2066acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2076acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2086acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* retrieve or set capture properties */ 2096acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id ); 2106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(int) cvSetCaptureProperty( CvCapture* capture, int property_id, double value ); 2116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/****************************************************************************************\ 2136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn* Obsolete functions/synonyms * 2146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn\****************************************************************************************/ 2156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef HIGHGUI_NO_BACKWARD_COMPATIBILITY 2176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn #define HIGHGUI_BACKWARD_COMPATIBILITY 2186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif 2196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef HIGHGUI_BACKWARD_COMPATIBILITY 2216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvCaptureFromFile cvCreateFileCapture 2236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvCaptureFromCAM cvCreateCameraCapture 2246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvCaptureFromAVI cvCaptureFromFile 2256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvCreateAVIWriter cvCreateVideoWriter 2266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvWriteToAVI cvWriteFrame 2276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvAddSearchPath(path) 2286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvInitSystem cvInitSystem 2296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvNamedWindow cvNamedWindow 2306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvResizeWindow cvResizeWindow 2316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvDestroyWindow cvDestroyWindow 2326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvCreateTrackbar cvCreateTrackbar 2336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvLoadImage(name) cvLoadImage((name),1) 2346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvSaveImage cvSaveImage 2356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvAddSearchPath cvAddSearchPath 2366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvWaitKey(name) cvWaitKey(0) 2376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvWaitKeyEx(name,delay) cvWaitKey(delay) 2386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define cvvConvertImage cvConvertImage 2396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define HG_AUTOSIZE CV_WINDOW_AUTOSIZE 2406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define set_preprocess_func cvSetPreprocessFuncWin32 2416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define set_postprocess_func cvSetPostprocessFuncWin32 2426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef WIN32 2446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renntypedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*); 2466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(void) cvSetPreprocessFuncWin32( CvWin32WindowCallback on_preprocess ); 2476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCVAPI(void) cvSetPostprocessFuncWin32( CvWin32WindowCallback on_postprocess ); 2486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE int iplWidth( const IplImage* img ); 2506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE int iplWidth( const IplImage* img ) 2516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 2526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return !img ? 0 : !img->roi ? img->width : img->roi->width; 2536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 2546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE int iplHeight( const IplImage* img ); 2566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE int iplHeight( const IplImage* img ) 2576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 2586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return !img ? 0 : !img->roi ? img->height : img->roi->height; 2596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 2606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif 2626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif /* obsolete functions */ 2646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* For use with Win32 */ 2666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef WIN32 2676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE RECT NormalizeRect( RECT r ); 2696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE RECT NormalizeRect( RECT r ) 2706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 2716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int t; 2726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn if( r.left > r.right ) 2746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn { 2756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn t = r.left; 2766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn r.left = r.right; 2776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn r.right = t; 2786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn } 2796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2806acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn if( r.top > r.bottom ) 2816acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn { 2826acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn t = r.top; 2836acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn r.top = r.bottom; 2846acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn r.bottom = t; 2856acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn } 2866acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2876acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return r; 2886acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 2896acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2906acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE CvRect RectToCvRect( RECT sr ); 2916acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE CvRect RectToCvRect( RECT sr ) 2926acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 2936acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn sr = NormalizeRect( sr ); 2946acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return cvRect( sr.left, sr.top, sr.right - sr.left, sr.bottom - sr.top ); 2956acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 2966acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 2976acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE RECT CvRectToRect( CvRect sr ); 2986acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE RECT CvRectToRect( CvRect sr ) 2996acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 3006acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn RECT dr; 3016acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn dr.left = sr.x; 3026acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn dr.top = sr.y; 3036acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn dr.right = sr.x + sr.width; 3046acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn dr.bottom = sr.y + sr.height; 3056acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3066acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return dr; 3076acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 3086acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3096acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE IplROI RectToROI( RECT r ); 3106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCV_INLINE IplROI RectToROI( RECT r ) 3116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 3126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn IplROI roi; 3136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn r = NormalizeRect( r ); 3146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn roi.xOffset = r.left; 3156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn roi.yOffset = r.top; 3166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn roi.width = r.right - r.left; 3176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn roi.height = r.bottom - r.top; 3186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn roi.coi = 0; 3196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return roi; 3216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} 3226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif /* WIN32 */ 3246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef __cplusplus 3266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn} /* end of extern "C" */ 3276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif /* __cplusplus */ 3286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#if defined __cplusplus && (!defined WIN32 || !defined (__GNUC__)) && !defined CV_NO_CVV_IMAGE 3316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define CImage CvvImage 3336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/* CvvImage class definition */ 3356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennclass CV_EXPORTS CvvImage 3366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn{ 3376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennpublic: 3386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn CvvImage(); 3396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual ~CvvImage(); 3406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* Create image (BGR or grayscale) */ 3426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual bool Create( int width, int height, int bits_per_pixel, int image_origin = 0 ); 3436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* Load image from specified file */ 3456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual bool Load( const char* filename, int desired_color = 1 ); 3466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* Load rectangle from the file */ 3486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual bool LoadRect( const char* filename, 3496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int desired_color, CvRect r ); 3506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifdef WIN32 3526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual bool LoadRect( const char* filename, 3536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int desired_color, RECT r ) 3546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn { 3556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn return LoadRect( filename, desired_color, 3566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn cvRect( r.left, r.top, r.right - r.left, r.bottom - r.top )); 3576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn } 3586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif 3596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* Save entire image to specified file. */ 3616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual bool Save( const char* filename ); 3626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* Get copy of input image ROI */ 3646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual void CopyOf( CvvImage& image, int desired_color = -1 ); 3656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual void CopyOf( IplImage* img, int desired_color = -1 ); 3666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn IplImage* GetImage() { return m_img; }; 3686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual void Destroy(void); 3696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn /* width and height of ROI */ 3716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int Width() { return !m_img ? 0 : !m_img->roi ? m_img->width : m_img->roi->width; }; 3726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int Height() { return !m_img ? 0 : !m_img->roi ? m_img->height : m_img->roi->height;}; 3736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn int Bpp() { return m_img ? (m_img->depth & 255)*m_img->nChannels : 0; }; 3746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn virtual void Fill( int color ); 3766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennprotected: 3796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3806acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn IplImage* m_img; 3816acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}; 3826acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3836acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif /* __cplusplus */ 3846acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn 3856acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif /* _HIGH_GUI_ */ 386