?? highgui中文參考手冊.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><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">中科院自動化所自由軟件協(xié)會</a><li>張兆翔,<a href="http://fsa.ia.ac.cn">中科院自動化所自由軟件協(xié)會</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">實用函數(shù)與系統(tǒng)函數(shù)</a><li><a href="#highgui_func_index">按字母順序排列的函數(shù)列表</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">創(chuàng)建窗口</p><pre>int cvNamedWindow( const char* name, int flags );</pre><dl><dt>name<dd>窗口的名字,它被用來區(qū)分不同的窗口,并被顯示為窗口標題。<dt>flags<dd>窗口屬性標志。目前唯一支持的標志是<code>CV_WINDOW_AUTOSIZE</code>。當這個標志被設置后,如果用戶不能手動改變窗口大小,窗口大小會自動調(diào)整以適合被顯示圖像(參考<a href="#decl_cvShowImage">cvShowImage</a>)。</dl><p>函數(shù)<code>cvNamedWindow</code>創(chuàng)建一個可以放置圖像和trackbar的窗口。被創(chuàng)建的窗口可以通過它們的名字被引用。</p><p>如果已經(jīng)存在這個名字的窗口,這個函數(shù)將不做任何事情。</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>函數(shù)<code>cvDestroyWindow</code>銷毀指定名字的窗口。</p><hr><h3><a name="decl_cvDestroyAllWindows">cvDestroyAllWindows</a></h3><p class="Blurb">銷毀所有HighGUI窗口</p><pre>void cvDestroyAllWindows(void);</pre><p>函數(shù)<code>cvDestroyAllWindows</code>銷毀所有已經(jīng)打開的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>函數(shù)<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>函數(shù)<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>函數(shù)<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>給定函數(shù)<code>cvGetWindowName</code>一個窗口的句柄(在Win32情況下是HWND,GTK+情況下是GtkWidget),函數(shù)返回窗口的名字。</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>函數(shù)<code>cvShowImage</code>在指定窗口中顯示圖像。如果窗口創(chuàng)建的時候被設定標志<code>CV_WINDOW_AUTOSIZE</code>,那么圖像將以原始尺寸顯示;否則,圖像將被伸縮以適合窗口大小。</p><hr><h3><a name="decl_cvCreateTrackbar">cvCreateTrackbar</a></h3><p class="Blurb">創(chuàng)建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>被創(chuàng)建的trackbar名字。<dt>window_name<dd>窗口名字,這個窗口將為被創(chuàng)建trackbar的父對象。<dt>value<dd>整數(shù)指針,它的值將反映滑塊的位置。這個變量指定創(chuàng)建時的滑塊位置。<dt>count<dd>滑塊位置的最大值。最小值一直是0。<dt>on_change<dd>每次滑塊位置被改變的時候,被調(diào)用函數(shù)的指針。這個函數(shù)應該被聲明為<code>void Foo(int);</code>如果沒有回調(diào)函數(shù),這個值可以設為NULL。</dl><p>函數(shù)<code>cvCreateTrackbar</code>用指定的名字和范圍來創(chuàng)建trackbar(滑塊或者范圍控制),指定與trackbar位置同步的變量,并且指定當trackbar位置被改變的時候調(diào)用的回調(diào)函數(shù)。被創(chuàng)建的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>函數(shù)<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>函數(shù)<code>cvSetTrackbarPos</code>設置指定trackbar的位置。</p><hr><h3><a name="decl_cvSetMouseCallback">cvSetMouseCallback</a></h3><p class="Blurb">設置鼠標事件的回調(diào)函數(shù)</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>指定窗口里每次鼠標時間發(fā)生的時候,被調(diào)用的函數(shù)指針。這個函數(shù)的原型應該為 <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>函數(shù)調(diào)用的參數(shù)。<dt>param<dd>用戶定義的傳遞到回調(diào)函數(shù)的參數(shù)。</dl><p>函數(shù)<code>cvSetMouseCallback</code>設定指定窗口鼠標事件發(fā)生時的回調(diào)函數(shù)。詳細使用方法,請參考<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>延遲的毫秒數(shù)。</dl><p>函數(shù)<code>cvWaitKey</code>無限制的等待按鍵事件(delay<=0時);或者延遲"delay"毫秒。返回值為被按鍵的值,如果超過指定時間則返回-1。</p><p><b>注釋</b>:這個函數(shù)是HighGUI中唯一能夠獲取和操作事件的函數(shù),所以在一般的事件處理中,它需要周期地被調(diào)用,除非HighGUI被用在某些能夠處理事件的環(huán)境中。</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> 如果 >0,讀入的圖像將被強制轉(zhuǎn)換為3通道彩色圖像;<br> 如果為 0, 讀入的圖像將被強制轉(zhuǎn)換為灰度圖像;<br> 如果 <0, 讀入的圖像將與它本來顏色信息一樣 (顏色通道數(shù)目由圖像文件決定)。</dl><p>函數(shù)<code>cvLoadImage</code>從指定文件讀入圖像,返回讀入圖像的指針。目前支持如下文件格式:<ul><li>Windows位圖文件 - BMP, DIB;<li>JPEG文件 - JPEG, JPG, JPE;<li>便攜式網(wǎng)絡圖片 - 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>函數(shù)<code>cvSaveImage</code>保存圖像到指定文件。圖像格式的的選擇依賴于<code>filename</code>的擴展名,請參考<a href="#decl_cvLoadImage">cvLoadImage</a>。只有8位單通道或者3通道(通道順序為'BGR' )可以使用這個函數(shù)保存。如果格式,深度或者通道不符合要求,請先用<code>cvCvtScale</code>和<code>cvCvtColor</code>轉(zhuǎn)換;或者使用通用的<code>cvSave</code>保存圖像為XML或者YAML格式。</p><hr><h2><a name="highgui_video">視頻讀寫函數(shù)</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>沒有公共接口,它只能被用來作為視頻獲取函數(shù)的一個參數(shù)。</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>函數(shù)<code>cvCaptureFromFile</code>給指定文件中的視頻流分配和初始化CvCapture結構。</p><p>當分配的結構不再使用的時候,它應該使用<a href="#decl_cvReleaseCapture">cvReleaseCapture</a>函數(shù)釋放掉。</p>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -