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

📄 opencv highgui参考手册.htm

📁 Opencv的中文参考指南
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0082)http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm -->
<HTML><HEAD><TITLE>OpenCV: HighGUI参考手册</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK 
href="OpenCV HighGUI参考手册.files/opencvref.css" type=text/css charset=gbk 
rel=STYLESHEET>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></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> </LI></UL>
<HR>

<UL>
  <LI><A 
  href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#highgui_gui">简单图形界面</A> 

  <LI><A 
  href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#highgui_loadsave">读取与保存图像</A> 

  <LI><A 
  href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#highgui_video">视频读写</A> 

  <LI><A 
  href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#highgui_utils">实用函数与系统函数</A> 

  <LI><A 
  href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#highgui_func_index">按字母顺序排列的函数列表</A> 
  </LI></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="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#decl_cvShowImage">cvShowImage</A>)。 
  </DD></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>要被销毁的窗口的名字。 </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>新的窗口高度。 </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坐标。 </DD></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>窗口名字。 </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>窗口句柄。 </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>被显示的图像。 </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。 </DD></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父窗口的名字。 </DD></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>新的位置。 </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    32

CV_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>用户定义的传递到回调函数的参数。 </DD></DL>
<P>函数<CODE>cvSetMouseCallback</CODE>设定指定窗口鼠标事件发生时的回调函数。详细使用方法,请参考<A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/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>延迟的毫秒数。 </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, 读入的图像将与它本来颜色信息一样 (颜色通道数目由图像文件决定)。 </DD></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。 </LI></UL>
<P></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>要保存的图像。 </DD></DL>
<P>函数<CODE>cvSaveImage</CODE>保存图像到指定文件。图像格式的的选择依赖于<CODE>filename</CODE>的扩展名,请参考<A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#decl_cvLoadImage">cvLoadImage</A>。只有8位单通道或者3通道(通道顺序为'BGR' 
)可以使用这个函数保存。如果格式,深度或者通道不符合要求,请先用<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="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#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>视频文件名。 </DD></DL>
<P>函数<CODE>cvCaptureFromFile</CODE>给指定文件中的视频流分配和初始化CvCapture结构。 </P>
<P>当分配的结构不再使用的时候,它应该使用<A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#decl_cvReleaseCapture">cvReleaseCapture</A>函数释放掉。 
</P>
<HR>

<H3><A name=decl_cvCaptureFromCAM>cvCaptureFromCAM</A></H3>
<P class=Blurb>初始化从摄像头中获取视频</P><PRE>CvCapture* cvCaptureFromCAM( int index );
</PRE>
<DL>
  <DT>index
  <DD>要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。 </DD></DL>
<P>函数<CODE>cvCaptureFromCAM</CODE>给从摄像头的视频流分配和初始化CvCapture结构。目前在Windows下可使用两种接口:Video 
for Windows(VFW)和Matrox Imaging Library(MIL); 
Linux下也有两种接口:V4L和FireWire(IEEE1394)。 </P>
<P>释放这个结构,使用函数<A 
href="http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_highgui.cn.htm#decl_cvReleaseCapture">cvReleaseCapture</A>。</P>
<HR>

<H3><A name=decl_cvReleaseCapture>cvReleaseCapture</A></H3>
<P class=Blurb>释放CvCapture结构</P><PRE>void cvReleaseCapture( CvCapture** capture );
</PRE>

⌨️ 快捷键说明

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