⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opencvref_highgui.cn.htm

📁 opencv 中文文档 关于opencv 的所有函数
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><meta http-equiv="Content-Type" content="text/plain; charset=gbk"><link rel="STYLESHEET" href="opencvref.css" charset="gbk" type="text/css"><title>OpenCV: HighGUI参考手册 </title></head><body><h1>HighGUI参考手册</h1><hr>中文翻译者:<ul><li><a href="mailto:yushiqi@yahoo.com.cn">于仕琪</a>,<a href="http://fsa.ia.ac.cn">中科院自动化所自由软件协会</a><li>张兆翔,<a href="http://fsa.ia.ac.cn">中科院自动化所自由软件协会</a></ul><hr><ul><li><a href="#highgui_gui">简单图形界面</a><li><a href="#highgui_loadsave">读取与保存图像</a><li><a href="#highgui_video">视频读写</a><li><a href="#highgui_utils">实用函数与系统函数</a><li><a href="#highgui_func_index">按字母顺序排列的函数列表</a></ul><hr><h2><a name="highgui_overview">HighGUI概述</a></h2><p>TODO</p><hr><h2><a name="highgui_gui">简单图形界面</a></h2><hr><h3><a name="decl_cvNamedWindow">cvNamedWindow</a></h3><p class="Blurb">创建窗口</p><pre>int cvNamedWindow( const char* name, int flags );</pre><dl><dt>name<dd>窗口的名字,它被用来区分不同的窗口,并被显示为窗口标题。<dt>flags<dd>窗口属性标志。目前唯一支持的标志是<code>CV_WINDOW_AUTOSIZE</code>。当这个标志被设置后,如果用户不能手动改变窗口大小,窗口大小会自动调整以适合被显示图像(参考<a href="#decl_cvShowImage">cvShowImage</a>)。</dl><p>函数<code>cvNamedWindow</code>创建一个可以放置图像和trackbar的窗口。被创建的窗口可以通过它们的名字被引用。</p><p>如果已经存在这个名字的窗口,这个函数将不做任何事情。</p><hr><h3><a name="decl_cvDestroyWindow">cvDestroyWindow</a></h3><p class="Blurb">销毁一个窗口</p><pre>void cvDestroyWindow( const char* name );</pre><dl><dt>name<dd>要被销毁的窗口的名字。</dl><p>函数<code>cvDestroyWindow</code>销毁指定名字的窗口。</p><hr><h3><a name="decl_cvDestroyAllWindows">cvDestroyAllWindows</a></h3><p class="Blurb">销毁所有HighGUI窗口</p><pre>void cvDestroyAllWindows(void);</pre><p>函数<code>cvDestroyAllWindows</code>销毁所有已经打开的HighGUI窗口。</p><hr><h3><a name="decl_cvResizeWindow">cvResizeWindow</a></h3><p class="Blurb">设定窗口大小</p><pre>void cvResizeWindow( const char* name, int width, int height );</pre><dl><dt>name<dd>将被设置窗口的名字。<dt>width<dd>新的窗口宽度。<dt>height<dd>新的窗口高度。</dl><p>函数<code>cvResizeWindow</code>改变窗口的大小。</p><hr><h3><a name="decl_cvMoveWindow">cvMoveWindow</a></h3><p class="Blurb">设定窗口的位置</p><pre>void cvMoveWindow( const char* name, int x, int y );</pre><dl><dt>name<dd>将被设置的窗口的名字。<dt>x<dd>窗口左上角的x坐标。<dt>y<dd>窗口左上角的y坐标。</dl><p>函数<code>cvMoveWindow</code>改变窗口的位置。</p><hr><h3><a name="decl_cvGetWindowHandle">cvGetWindowHandle</a></h3><p class="Blurb">通过名字获取窗口句柄</p><pre>void* cvGetWindowHandle( const char* name );</pre><dl><dt>name<dd>窗口名字。</dl><p>函数<code>cvGetWindowHandle</code>返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)</p><hr><h3><a name="decl_cvGetWindowName">cvGetWindowName</a></h3><p class="Blurb">通过句柄获取窗口的名字</p><pre>const char* cvGetWindowName( void* window_handle );</pre><dl><dt>window_handle<dd>窗口句柄。</dl><p>给定函数<code>cvGetWindowName</code>一个窗口的句柄(在Win32情况下是HWND,GTK+情况下是GtkWidget),函数返回窗口的名字。</p><hr><h3><a name="decl_cvShowImage">cvShowImage</a></h3><p class="Blurb">在指定窗口中显示图像</p><pre>void cvShowImage( const char* name, const CvArr* image );</pre><dl><dt>name<dd>窗口的名字。<dt>image<dd>被显示的图像。</dl><p>函数<code>cvShowImage</code>在指定窗口中显示图像。如果窗口创建的时候被设定标志<code>CV_WINDOW_AUTOSIZE</code>,那么图像将以原始尺寸显示;否则,图像将被伸缩以适合窗口大小。</p><hr><h3><a name="decl_cvCreateTrackbar">cvCreateTrackbar</a></h3><p class="Blurb">创建trackbar并将它添加到指定的窗口。</p><pre>CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) );int cvCreateTrackbar( const char* trackbar_name, const char* window_name,                      int* value, int count, CvTrackbarCallback on_change );</pre><dl><dt>trackbar_name<dd>被创建的trackbar名字。<dt>window_name<dd>窗口名字,这个窗口将为被创建trackbar的父对象。<dt>value<dd>整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。<dt>count<dd>滑块位置的最大值。最小值一直是0。<dt>on_change<dd>每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为<code>void Foo(int);</code>如果没有回调函数,这个值可以设为NULL。</dl><p>函数<code>cvCreateTrackbar</code>用指定的名字和范围来创建trackbar(滑块或者范围控制),指定与trackbar位置同步的变量,并且指定当trackbar位置被改变的时候调用的回调函数。被创建的trackbar显示在指定窗口的顶端。</p><hr><h3><a name="decl_cvGetTrackbarPos">cvGetTrackbarPos</a></h3><p class="Blurb">获取trackbar的位置</p><pre>int cvGetTrackbarPos( const char* trackbar_name, const char* window_name );</pre><dl><dt>trackbar_name<dd>trackbar的名字。<dt>window_name<dd>trackbar父窗口的名字。</dl><p>函数<code>cvGetTrackbarPos</code>返回指定trackbar的当前位置。</p><hr><h3><a name="decl_cvSetTrackbarPos">cvSetTrackbarPos</a></h3><p class="Blurb">设置trackbar位置</p><pre>void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos );</pre><dl><dt>trackbar_name<dd>trackbar的名字。<dt>window_name<dd>trackbar父窗口的名字。<dt>pos<dd>新的位置。</dl><p>函数<code>cvSetTrackbarPos</code>设置指定trackbar的位置。</p><hr><h3><a name="decl_cvSetMouseCallback">cvSetMouseCallback</a></h3><p class="Blurb">设置鼠标事件的回调函数</p><pre>#define CV_EVENT_MOUSEMOVE      0#define CV_EVENT_LBUTTONDOWN    1#define CV_EVENT_RBUTTONDOWN    2#define CV_EVENT_MBUTTONDOWN    3#define CV_EVENT_LBUTTONUP      4#define CV_EVENT_RBUTTONUP      5#define CV_EVENT_MBUTTONUP      6#define CV_EVENT_LBUTTONDBLCLK  7#define CV_EVENT_RBUTTONDBLCLK  8#define CV_EVENT_MBUTTONDBLCLK  9#define CV_EVENT_FLAG_LBUTTON   1#define CV_EVENT_FLAG_RBUTTON   2#define CV_EVENT_FLAG_MBUTTON   4#define CV_EVENT_FLAG_CTRLKEY   8#define CV_EVENT_FLAG_SHIFTKEY  16#define CV_EVENT_FLAG_ALTKEY    32CV_EXTERN_C_FUNCPTR( void (*CvMouseCallback )(int event, int x, int y, int flags, void* param) );void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse, void* param=NULL );</pre><dl><dt>window_name<dd>窗口的名字。<dt>on_mouse<dd>指定窗口里每次鼠标时间发生的时候,被调用的函数指针。这个函数的原型应该为  <pre>void Foo(int event, int x, int y, int flags, void* param);</pre>  其中<code>event</code>是 <code>CV_EVENT_*</code>变量之一,  <code>x</code>和<code>y</code>是鼠标指针在图像坐标系的坐标(不是窗口坐标系),  <code>flags</code>是<code>CV_EVENT_FLAG</code>的组合,  <code>param</code>是用户定义的传递到<code>cvSetMouseCallback</code>函数调用的参数。<dt>param<dd>用户定义的传递到回调函数的参数。</dl><p>函数<code>cvSetMouseCallback</code>设定指定窗口鼠标事件发生时的回调函数。详细使用方法,请参考<a href="../../samples/c/ffilldemo.c">opencv/samples/c/ffilldemo.c</a> demo。</p><hr><h3><a name="decl_cvWaitKey">cvWaitKey</a></h3><p class="Blurb">等待按键事件</p><pre>int cvWaitKey( int delay=0 );</pre><dl><dt>delay<dd>延迟的毫秒数。</dl><p>函数<code>cvWaitKey</code>无限制的等待按键事件(delay&lt;=0时);或者延迟"delay"毫秒。返回值为被按键的值,如果超过指定时间则返回-1。</p><p><b>注释</b>:这个函数是HighGUI中唯一能够获取和操作事件的函数,所以在一般的事件处理中,它需要周期地被调用,除非HighGUI被用在某些能够处理事件的环境中。</p><hr><h2><a name="highgui_loadsave">读取与保存图像</a></h2><hr><h3><a name="decl_cvLoadImage">cvLoadImage</a></h3><p class="Blurb">从文件中读取图像</p><pre>IplImage* cvLoadImage( const char* filename, int iscolor=1 );</pre><dl><dt>filename<dd>要被读入的文件的文件名。<dt>iscolor<dd>指定读入图像的颜色:<br>       如果 &gt;0,读入的图像将被强制转换为3通道彩色图像;<br>       如果为 0, 读入的图像将被强制转换为灰度图像;<br>       如果 &lt;0, 读入的图像将与它本来颜色信息一样       (颜色通道数目由图像文件决定)。</dl><p>函数<code>cvLoadImage</code>从指定文件读入图像,返回读入图像的指针。目前支持如下文件格式:<ul><li>Windows位图文件 - BMP, DIB;<li>JPEG文件 - JPEG, JPG, JPE;<li>便携式网络图片 - PNG;<li>便携式图像格式 - PBM,PGM,PPM;<li>Sun rasters - SR,RAS;<li>TIFF文件 - TIFF,TIF。</ul></p><hr><h3><a name="decl_cvSaveImage">cvSaveImage</a></h3><p class="Blurb">保存图像到文件</p><pre>int cvSaveImage( const char* filename, const CvArr* image );</pre><dl><dt>filename<dd>文件名。<dt>image<dd>要保存的图像。</dl><p>函数<code>cvSaveImage</code>保存图像到指定文件。图像格式的的选择依赖于<code>filename</code>的扩展名,请参考<a href="#decl_cvLoadImage">cvLoadImage</a>。只有8位单通道或者3通道(通道顺序为&#39;BGR&#39; )可以使用这个函数保存。如果格式,深度或者通道不符合要求,请先用<code>cvCvtScale</code>和<code>cvCvtColor</code>转换;或者使用通用的<code>cvSave</code>保存图像为XML或者YAML格式。</p><hr><h2><a name="highgui_video">视频读写函数</a></h2><hr><h3><a name="decl_CvCapture">CvCapture</a></h3><p class="Blurb">视频获取结构</p><pre>typedef struct CvCapture CvCapture;</pre><p>结构<a href="#decl_CvCapture">CvCapture</a>没有公共接口,它只能被用来作为视频获取函数的一个参数。</p><hr><h3><a name="decl_cvCaptureFromFile">cvCaptureFromFile</a></h3><p class="Blurb">初始化从文件中获取视频</p><pre>CvCapture* cvCaptureFromFile( const char* filename );</pre><dl><dt>filename<dd>视频文件名。</dl><p>函数<code>cvCaptureFromFile</code>给指定文件中的视频流分配和初始化CvCapture结构。</p><p>当分配的结构不再使用的时候,它应该使用<a href="#decl_cvReleaseCapture">cvReleaseCapture</a>函数释放掉。</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -