📄 opencvref_highgui.cn.htm
字号:
<hr><h3><a name="decl_cvCaptureFromCAM">cvCaptureFromCAM</a></h3><p class="Blurb">初始化从摄像头中获取视频</p><pre>CvCapture* cvCaptureFromCAM( int index );</pre><dl><dt>index<dd>要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。</dl><p>函数<code>cvCaptureFromCAM</code>给从摄像头的视频流分配和初始化CvCapture结构。目前在Windows下可使用两种接口:Video for Windows(VFW)和Matrox Imaging Library(MIL);Linux下也有两种接口:V4L和FireWire(IEEE1394)。</p><p>释放这个结构,使用函数<a href="#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><dl><dt>capture<dd>视频获取结构指针。</dl><p>函数<code>cvReleaseCapture</code>释放由<a href="#decl_cvCaptureFromFile">cvCaptureFromFile</a>或者<a href="#decl_cvCaptureFromCAM">cvCaptureFromCAM</a>申请的CvCapture结构。</p><hr><h3><a name="decl_cvGrabFrame">cvGrabFrame</a></h3><p class="Blurb">从摄像头或者视频文件中抓取帧</p><pre>int cvGrabFrame( CvCapture* capture );</pre><dl><dt>capture<dd>视频获取结构指针。</dl><p>函数<code>cvGrabFrame</code>从摄像头或者文件中抓取帧。被抓取的帧在内部被存储。这个函数的目的是<em>快速</em>的抓取帧,这一点对同时从几个摄像头读取数据的同步是很重要的。被抓取的帧可能是压缩的格式(由摄像头/驱动定义),所以没有被公开出来。如果要取回获取的帧,请使用<a href="#decl_cvRetrieveFrame">cvRetrieveFrame</a>。</p><hr><h3><a name="decl_cvRetrieveFrame">cvRetrieveFrame</a></h3><p class="Blurb">取回由函数cvGrabFrame抓取的图像</p><pre>IplImage* cvRetrieveFrame( CvCapture* capture );</pre><dl><dt>capture<dd>视频获取结构。</dl><p>函数<code>cvRetrieveFrame</code>返回由函数<a href="#decl_cvGrabFrame">cvGrabFrame</a>抓取的图像的指针。返回的图像不可以被用户释放或者修改。</p><hr><h3><a name="decl_cvQueryFrame">cvQueryFrame</a></h3><p class="Blurb">从摄像头或者文件中抓取并返回一帧</p><pre>IplImage* cvQueryFrame( CvCapture* capture );</pre><dl><dt>capture<dd>视频获取结构。</dl><p>函数<code>cvQueryFrame</code>从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数<a href="#decl_cvGrabFrame">cvGrabFrame</a>和函数<a href="#decl_cvRetrieveFrame">cvRetrieveFrame</a>在一起调用的组合。返回的图像不可以被用户释放或者修改。</p><hr><h3><a name="decl_cvGetCaptureProperty">cvGetCaptureProperty</a></h3><p class="Blurb">获得视频获取结构的属性</p><pre>double cvGetCaptureProperty( CvCapture* capture, int property_id );</pre><dl><dt>capture<dd>视频获取结构。<dt>property_id<dd>属性标识。可以是下面之一:<br> <code>CV_CAP_PROP_POS_MSEC</code> - 影片目前位置,为毫秒数或者视频获取时间戳<br> <code>CV_CAP_PROP_POS_FRAMES</code> - 将被下一步解压/获取的帧索引,以0为起点<br> <code>CV_CAP_PROP_POS_AVI_RATIO</code> - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)<br> <code>CV_CAP_PROP_FRAME_WIDTH</code> - 视频流中的帧宽度<br> <code>CV_CAP_PROP_FRAME_HEIGHT</code> - 视频流中的帧高度<br> <code>CV_CAP_PROP_FPS</code> - 帧率<br> <code>CV_CAP_PROP_FOURCC</code> - 表示codec的四个字符 <code>CV_CAP_PROP_FRAME_COUNT</code> - 视频文件中帧的总数 </dl><p>函数<code>cvGetCaptureProperty</code>获得摄像头或者视频文件的指定属性。</p><p>译者注:有时候这个函数在cvQueryFrame被调用一次后,再调用cvGetCaptureProperty才会返回正确的数值。</p><hr><h3><a name="decl_cvSetCaptureProperty">cvSetCaptureProperty</a></h3><p class="Blurb">设置视频获取属性</p><pre>int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );</pre><dl><dt>capture<dd>视频获取结构。<dt>property_id<dd>属性标识符。可以是下面之一:<br> <code>CV_CAP_PROP_POS_MSEC</code> - 从文件开始的位置,单位为毫秒<br> <code>CV_CAP_PROP_POS_FRAMES</code> - 单位为帧数的位置(只对视频文件有效)<br> <code>CV_CAP_PROP_POS_AVI_RATIO</code> - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)<br> <code>CV_CAP_PROP_FRAME_WIDTH</code> - 视频流的帧宽度(只对摄像头有效)<br> <code>CV_CAP_PROP_FRAME_HEIGHT</code> - 视频流的帧高度(只对摄像头有效)<br> <code>CV_CAP_PROP_FPS</code> - 帧率(只对摄像头有效)<br> <code>CV_CAP_PROP_FOURCC</code> - 表示codec的四个字符(只对摄像头有效)<dt>value<dd>属性的值。</dl><p>函数<code>cvSetCaptureProperty</code>设置指定视频获取的属性。目前这个函数对视频文件只支持:<code>CV_CAP_PROP_POS_MSEC, CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_AVI_RATIO<code></p><hr><h3><a name="decl_cvCreateVideoWriter">cvCreateVideoWriter</a></h3><p class="Blurb">创建视频文件写入器</p><pre>typedef struct CvVideoWriter CvVideoWriter;CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc, double fps, CvSize frame_size, int is_color=1 );</pre><dl><dt>filename<dd>输出视频文件名。<dt>fourcc<dd>四个字符用来表示压缩帧的codec 例如,<code>CV_FOURCC('P','I','M','1')</code>是MPEG-1 codec, <code>CV_FOURCC('M','J','P','G')</code>是motion-jpeg codec等。 在Win32下,如果传入参数-1,可以从一个对话框中选择压缩方法和压缩参数。<dt>fps<dd>被创建视频流的帧率。<dt>frame_size<dd>视频流的大小。<dt>is_color<dd>如果非零,编码器将希望得到彩色帧并进行编码;否则,是灰度帧(只有在Windows下支持这个标志)。</dl><p>函数<code>cvCreateVideoWriter</code>创建视频写入器结构。</p><hr><h3><a name="decl_cvReleaseVideoWriter">cvReleaseVideoWriter</a></h3><p class="Blurb">释放视频写入器</p><pre>void cvReleaseVideoWriter( CvVideoWriter** writer );</pre><dl><dt>writer<dd>指向视频写入器的指针。</dl><p>函数<code>cvReleaseVideoWriter</code>结束视频文件的写入并且释放这个结构。</p><hr><h3><a name="decl_cvWriteFrame">cvWriteFrame</a></h3><p class="Blurb">写入一帧到一个视频文件中</p><pre>int cvWriteFrame( CvVideoWriter* writer, const IplImage* image );</pre><dl><dt>writer<dd>视频写入器结构。<dt>image</dt><dd>被写入的帧。</dl><p>函数<code>cvWriteFrame</code>写入/附加到视频文件一帧。</p><hr><h2><a name="highgui_utils">实用函数与系统函数</a></h2><hr><h3><a name="decl_cvInitSystem">cvInitSystem</a></h3><p class="Blurb">初始化HighGUI</p><pre>int cvInitSystem( int argc, char** argv );</pre><dl><dt>argc<dd>命令行参数个数。<dt>argv<dd>命令行参数数组。</dl><p>函数<code>cvInitSystem</code>初始化HighGUI。如果在第一个窗口被创建前这个函数不能被用户显式地调用,这个函数将以参数<code>argc</code>=0,<code>argv</code>=NULL隐式地被调用。在Win32下,没有必要显式调用这个函数。在X Window下,参数也许被用来自定义一个HighGUI窗口和控件的外观。</p><hr><h3><a name="decl_cvConvertImage">cvConvertImage</a></h3><p class="Blurb">Converts one image to another with optional vertical flip</p><pre>void cvConvertImage( const CvArr* src, CvArr* dst, int flags=0 );</pre><dl><dt>src<dd>输入图像。<dt>dst<dd>目标图像。必须为单通道或者3通道8位图像。<dt>flags</dt><dd>操作标志:<br> <code>CV_CVTIMG_FLIP</code> - 垂直翻转图像。 <code>CV_CVTIMG_SWAP_RB</code> - 交换红蓝通道。 在OpenCV中,彩色图像的通道顺序是 <code><font color="blue">B</font><font color="green">G</font><font color="red">R</font></code> 然而在一些系统中,在显式图像之前通道顺序应该被翻转为 (<a href="#decl_cvShowImage">cvShowImage</a>能够自动转换)。</dl><p>函数<code>cvConvertImage</code>转换一幅图像到另一幅图像,如果需要的话可以垂直翻转图像。这个函数被<a href="#decl_cvShowImage">cvShowImage</a>使用。</p><hr><h1><a name="highgui_func_index">按字母顺序排列的函数列表</a></h1><hr><h3>C</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvCaptureFromCAM">CaptureFromCAM</a></td><td width="25%"><a href="#decl_cvConvertImage">ConvertImage</a></td><td width="25%"><a href="#decl_cvCreateVideoWriter">CreateVideoWriter</a></td></tr><tr><td width="25%"><a href="#decl_cvCaptureFromFile">CaptureFromFile</a></td><td width="25%"><a href="#decl_cvCreateTrackbar">CreateTrackbar</a></td><td width="25%%"></td></tr></table><hr><h3>D</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvDestroyAllWindows">DestroyAllWindows</a></td><td width="25%"><a href="#decl_cvDestroyWindow">DestroyWindow</a></td><td width="25%%"></td></tr></table><hr><h3>G</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvGetCaptureProperty">GetCaptureProperty</a></td><td width="25%"><a href="#decl_cvGetWindowHandle">GetWindowHandle</a></td><td width="25%"><a href="#decl_cvGrabFrame">GrabFrame</a></td></tr><tr><td width="25%"><a href="#decl_cvGetTrackbarPos">GetTrackbarPos</a></td><td width="25%"><a href="#decl_cvGetWindowName">GetWindowName</a></td><td width="25%%"></td></tr></table><hr><h3>I</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvInitSystem">InitSystem</a></td><td width="25%%"></td><td width="25%%"></td></tr></table><hr><h3>L</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvLoadImage">LoadImage</a></td><td width="25%%"></td><td width="25%%"></td></tr></table><hr><h3>M</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvMoveWindow">MoveWindow</a></td><td width="25%%"></td><td width="25%%"></td></tr></table><hr><h3>N</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvNamedWindow">NamedWindow</a></td><td width="25%%"></td><td width="25%%"></td></tr></table><hr><h3>Q</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvQueryFrame">QueryFrame</a></td><td width="25%%"></td><td width="25%%"></td></tr></table><hr><h3>R</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvReleaseCapture">ReleaseCapture</a></td><td width="25%"><a href="#decl_cvResizeWindow">ResizeWindow</a></td><td width="25%%"></td></tr><tr><td width="25%"><a href="#decl_cvReleaseVideoWriter">ReleaseVideoWriter</a></td><td width="25%"><a href="#decl_cvRetrieveFrame">RetrieveFrame</a></td><td width="25%%"></td></tr></table><hr><h3>S</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvSaveImage">SaveImage</a></td><td width="25%"><a href="#decl_cvSetMouseCallback">SetMouseCallback</a></td><td width="25%"><a href="#decl_cvShowImage">ShowImage</a></td></tr><tr><td width="25%"><a href="#decl_cvSetCaptureProperty">SetCaptureProperty</a></td><td width="25%"><a href="#decl_cvSetTrackbarPos">SetTrackbarPos</a></td><td width="25%%"></td></tr></table><hr><h3>W</h3><table width="100%"><tr><td width="25%"><a href="#decl_cvWaitKey">WaitKey</a></td><td width="25%"><a href="#decl_cvWriteFrame">WriteFrame</a></td><td width="25%%"></td></tr></table></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -