乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      OpenCV: HighGUI參考手冊

       LSS133LSS 2014-05-04

      HighGUI參考手冊


      中文翻譯者:

      HighGUI概述HighGUI概述

      TODO


      簡單圖形界面


      cvNamedWindow

      創(chuàng)建窗口

      int cvNamedWindow( const char* name, int flags );
      
      name
      窗口的名字,它被用來區(qū)分不同的窗口,并被顯示為窗口標題。
      flags
      窗口屬性標志。目前唯一支持的標志是CV_WINDOW_AUTOSIZE。 當(dāng)這個標志被設(shè)置后,如果用戶不能手動改變窗口大小,窗口大小會自動調(diào)整以適合被顯示圖像 (參考cvShowImage)。

      函數(shù)cvNamedWindow創(chuàng)建一個可以放置圖像和trackbar的窗口。 被創(chuàng)建的窗口可以通過它們的名字被引用。

      如果已經(jīng)存在這個名字的窗口,這個函數(shù)將不做任何事情。


      cvDestroyWindow

      銷毀一個窗口

      void cvDestroyWindow( const char* name );
      
      name
      要被銷毀的窗口的名字。

      函數(shù)cvDestroyWindow銷毀指定名字的窗口。


      cvDestroyAllWindows

      銷毀所有HighGUI窗口

      void cvDestroyAllWindows(void);
      

      函數(shù)cvDestroyAllWindows銷毀所有已經(jīng)打開的HighGUI窗口。


      cvResizeWindow

      設(shè)定窗口大小

      void cvResizeWindow( const char* name, int width, int height );
      
      name
      將被設(shè)置窗口的名字。
      width
      新的窗口寬度。
      height
      新的窗口高度。

      函數(shù)cvResizeWindow改變窗口的大小。


      cvMoveWindow

      設(shè)定窗口的位置

      void cvMoveWindow( const char* name, int x, int y );
      
      name
      將被設(shè)置的窗口的名字。
      x
      窗口左上角的x坐標。
      y
      窗口左上角的y坐標。

      函數(shù)cvMoveWindow改變窗口的位置。


      cvGetWindowHandle

      通過名字獲取窗口句柄

      void* cvGetWindowHandle( const char* name );
      
      name
      窗口名字。

      函數(shù)cvGetWindowHandle返回原始的窗口句柄(在Win32情況下返回HWND,GTK+情況下返回GtkWidget)


      cvGetWindowName

      通過句柄獲取窗口的名字

      const char* cvGetWindowName( void* window_handle );
      
      window_handle
      窗口句柄。

      給定函數(shù)cvGetWindowName一個窗口的句柄(在Win32情況下是HWND,GTK+情況下是GtkWidget), 函數(shù)返回窗口的名字。


      cvShowImage

      在指定窗口中顯示圖像

      void cvShowImage( const char* name, const CvArr* image );
      
      name
      窗口的名字。
      image
      被顯示的圖像。

      函數(shù)cvShowImage 在指定窗口中顯示圖像。 如果窗口創(chuàng)建的時候被設(shè)定標志CV_WINDOW_AUTOSIZE, 那么圖像將以原始尺寸顯示; 否則,圖像將被伸縮以適合窗口大小。


      cvCreateTrackbar

      創(chuàng)建trackbar并將它添加到指定的窗口。

      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 );
      
      trackbar_name
      被創(chuàng)建的trackbar名字。
      window_name
      窗口名字,這個窗口將為被創(chuàng)建trackbar的父對象。
      value
      整數(shù)指針,它的值將反映滑塊的位置。這個變量指定創(chuàng)建時的滑塊位置。
      count
      滑塊位置的最大值。最小值一直是0。
      on_change
      每次滑塊位置被改變的時候,被調(diào)用函數(shù)的指針。這個函數(shù)應(yīng)該被聲明為void Foo(int); 如果沒有回調(diào)函數(shù),這個值可以設(shè)為NULL。

      函數(shù)cvCreateTrackbar用指定的名字和范圍來創(chuàng)建trackbar(滑塊或者范圍控制), 指定與trackbar位置同步的變量, 并且指定當(dāng)trackbar位置被改變的時候調(diào)用的回調(diào)函數(shù)。 被創(chuàng)建的trackbar顯示在指定窗口的頂端。


      cvGetTrackbarPos

      獲取trackbar的位置

      int cvGetTrackbarPos( const char* trackbar_name, const char* window_name );
      
      trackbar_name
      trackbar的名字。
      window_name
      trackbar父窗口的名字。

      函數(shù)cvGetTrackbarPos返回指定trackbar的當(dāng)前位置。


      cvSetTrackbarPos

      設(shè)置trackbar位置

      void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos );
      
      trackbar_name
      trackbar的名字。
      window_name
      trackbar父窗口的名字。
      pos
      新的位置。

      函數(shù)cvSetTrackbarPos設(shè)置指定trackbar的位置。


      cvSetMouseCallback

      設(shè)置鼠標事件的回調(diào)函數(shù)

      #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 );
      
      window_name
      窗口的名字。
      on_mouse
      指定窗口里每次鼠標時間發(fā)生的時候,被調(diào)用的函數(shù)指針。 這個函數(shù)的原型應(yīng)該為
      void Foo(int event, int x, int y, int flags, void* param);
      其中eventCV_EVENT_*變量之一, xy是鼠標指針在圖像坐標系的坐標(不是窗口坐標系), flagsCV_EVENT_FLAG的組合, param是用戶定義的傳遞到cvSetMouseCallback函數(shù)調(diào)用的參數(shù)。
      param
      用戶定義的傳遞到回調(diào)函數(shù)的參數(shù)。

      函數(shù)cvSetMouseCallback設(shè)定指定窗口鼠標事件發(fā)生時的回調(diào)函數(shù)。 詳細使用方法,請參考opencv/samples/c/ffilldemo.c demo。


      cvWaitKey

      等待按鍵事件

      int cvWaitKey( int delay=0 );
      
      delay
      延遲的毫秒數(shù)。

      函數(shù)cvWaitKey無限制的等待按鍵事件(delay<=0時); 或者延遲"delay"毫秒。 返回值為被按鍵的值,如果超過指定時間則返回-1。

      注釋:這個函數(shù)是HighGUI中唯一能夠獲取和操作事件的函數(shù), 所以在一般的事件處理中,它需要周期地被調(diào)用, 除非HighGUI被用在某些能夠處理事件的環(huán)境中。


      讀取與保存圖像


      cvLoadImage

      從文件中讀取圖像

      IplImage* cvLoadImage( const char* filename, int iscolor=1 );
      
      filename
      要被讀入的文件的文件名。
      iscolor
      指定讀入圖像的顏色:
      如果 >0,讀入的圖像將被強制轉(zhuǎn)換為3通道彩色圖像;
      如果為 0, 讀入的圖像將被強制轉(zhuǎn)換為灰度圖像;
      如果 <0, 讀入的圖像將與它本來顏色信息一樣 (顏色通道數(shù)目由圖像文件決定)。

      函數(shù)cvLoadImage從指定文件讀入圖像,返回讀入圖像的指針。 目前支持如下文件格式:

      • Windows位圖文件 - BMP, DIB;
      • JPEG文件 - JPEG, JPG, JPE;
      • 便攜式網(wǎng)絡(luò)圖片 - PNG;
      • 便攜式圖像格式 - PBM,PGM,PPM;
      • Sun rasters - SR,RAS;
      • TIFF文件 - TIFF,TIF。


      cvSaveImage

      保存圖像到文件

      int cvSaveImage( const char* filename, const CvArr* image );
      
      filename
      文件名。
      image
      要保存的圖像。

      函數(shù)cvSaveImage保存圖像到指定文件。 圖像格式的的選擇依賴于filename的擴展名, 請參考cvLoadImage。 只有8位單通道或者3通道(通道順序為'BGR' ) 可以使用這個函數(shù)保存。 如果格式,深度或者通道不符合要求,請先用cvCvtScalecvCvtColor轉(zhuǎn)換; 或者使用通用的cvSave保存圖像為XML或者YAML格式。


      視頻讀寫函數(shù)


      CvCapture

      視頻獲取結(jié)構(gòu)

      typedef struct CvCapture CvCapture;
      

      結(jié)構(gòu)CvCapture 沒有公共接口,它只能被用來作為視頻獲取函數(shù)的一個參數(shù)。


      cvCaptureFromFile

      初始化從文件中獲取視頻

      CvCapture* cvCaptureFromFile( const char* filename );
      
      filename
      視頻文件名。

      函數(shù)cvCaptureFromFile給指定文件中的視頻流分配和初始化CvCapture結(jié)構(gòu)。

      當(dāng)分配的結(jié)構(gòu)不再使用的時候,它應(yīng)該使用cvReleaseCapture函數(shù) 釋放掉。


      cvCaptureFromCAM

      初始化從攝像頭中獲取視頻

      CvCapture* cvCaptureFromCAM( int index );
      
      index
      要使用的攝像頭索引。如果只有一個攝像頭或者用哪個攝像頭也無所謂,那使用參數(shù)-1應(yīng)該便可以。

      函數(shù)cvCaptureFromCAM給從攝像頭的視頻流分配和初始化CvCapture結(jié)構(gòu)。 目前在Windows下可使用兩種接口:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有兩種接口:V4L和FireWire(IEEE1394)。

      釋放這個結(jié)構(gòu),使用函數(shù)cvReleaseCapture。


      cvReleaseCapture

      釋放CvCapture結(jié)構(gòu)

      void cvReleaseCapture( CvCapture** capture );
      
      capture
      視頻獲取結(jié)構(gòu)指針。

      函數(shù)cvReleaseCapture釋放由cvCaptureFromFile 或者cvCaptureFromCAM申請的CvCapture結(jié)構(gòu)。


      cvGrabFrame

      從攝像頭或者視頻文件中抓取幀

      int cvGrabFrame( CvCapture* capture );
      
      capture
      視頻獲取結(jié)構(gòu)指針。

      函數(shù)cvGrabFrame從攝像頭或者文件中抓取幀。 被抓取的幀在內(nèi)部被存儲。 這個函數(shù)的目的是快速的抓取幀, 這一點對同時從幾個攝像頭讀取數(shù)據(jù)的同步是很重要的。 被抓取的幀可能是壓縮的格式(由攝像頭/驅(qū)動定義),所以沒有被公開出來。 如果要取回獲取的幀,請使用cvRetrieveFrame。


      cvRetrieveFrame

      取回由函數(shù)cvGrabFrame抓取的圖像

      IplImage* cvRetrieveFrame( CvCapture* capture );
      
      capture
      視頻獲取結(jié)構(gòu)。

      函數(shù)cvRetrieveFrame返回由函數(shù)cvGrabFrame 抓取的圖像的指針。返回的圖像不可以被用戶釋放或者修改。


      cvQueryFrame

      從攝像頭或者文件中抓取并返回一幀

      IplImage* cvQueryFrame( CvCapture* capture );
      
      capture
      視頻獲取結(jié)構(gòu)。

      函數(shù)cvQueryFrame從攝像頭或者文件中抓取一幀,然后解壓并返回這一幀。 這個函數(shù)僅僅是函數(shù)cvGrabFrame和 函數(shù)cvRetrieveFrame在一起調(diào)用的組合。 返回的圖像不可以被用戶釋放或者修改。


      cvGetCaptureProperty

      獲得視頻獲取結(jié)構(gòu)的屬性

      double cvGetCaptureProperty( CvCapture* capture, int property_id );
      
      capture
      視頻獲取結(jié)構(gòu)。
      property_id
      屬性標識??梢允窍旅嬷唬?br> CV_CAP_PROP_POS_MSEC - 影片目前位置,為毫秒數(shù)或者視頻獲取時間戳
      CV_CAP_PROP_POS_FRAMES - 將被下一步解壓/獲取的幀索引,以0為起點
      CV_CAP_PROP_POS_AVI_RATIO - 視頻文件的相對位置(0 - 影片的開始,1 - 影片的結(jié)尾)
      CV_CAP_PROP_FRAME_WIDTH - 視頻流中的幀寬度
      CV_CAP_PROP_FRAME_HEIGHT - 視頻流中的幀高度
      CV_CAP_PROP_FPS - 幀率
      CV_CAP_PROP_FOURCC - 表示codec的四個字符 CV_CAP_PROP_FRAME_COUNT - 視頻文件中幀的總數(shù)

      函數(shù)cvGetCaptureProperty獲得攝像頭或者視頻文件的指定屬性。

      譯者注:有時候這個函數(shù)在cvQueryFrame被調(diào)用一次后,再調(diào)用cvGetCaptureProperty才會返回正確的數(shù)值。


      cvSetCaptureProperty

      設(shè)置視頻獲取屬性

      int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );
      
      capture
      視頻獲取結(jié)構(gòu)。
      property_id
      屬性標識符。可以是下面之一:
      CV_CAP_PROP_POS_MSEC - 從文件開始的位置,單位為毫秒
      CV_CAP_PROP_POS_FRAMES - 單位為幀數(shù)的位置(只對視頻文件有效)
      CV_CAP_PROP_POS_AVI_RATIO - 視頻文件的相對位置(0 - 影片的開始,1 - 影片的結(jié)尾)
      CV_CAP_PROP_FRAME_WIDTH - 視頻流的幀寬度(只對攝像頭有效)
      CV_CAP_PROP_FRAME_HEIGHT - 視頻流的幀高度(只對攝像頭有效)
      CV_CAP_PROP_FPS - 幀率(只對攝像頭有效)
      CV_CAP_PROP_FOURCC - 表示codec的四個字符(只對攝像頭有效)
      value
      屬性的值。

      函數(shù)cvSetCaptureProperty設(shè)置指定視頻獲取的屬性。 目前這個函數(shù)對視頻文件只支持: CV_CAP_PROP_POS_MSEC, CV_CAP_PROP_POS_FRAMES, CV_CAP_PROP_POS_AVI_RATIO


      cvCreateVideoWriter

      創(chuàng)建視頻文件寫入器

      typedef struct CvVideoWriter CvVideoWriter;
      CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc, double fps, CvSize frame_size, int is_color=1 );
      
      filename
      輸出視頻文件名。
      fourcc
      四個字符用來表示壓縮幀的codec 例如,CV_FOURCC('P','I','M','1')是MPEG-1 codec, CV_FOURCC('M','J','P','G')是motion-jpeg codec等。 在Win32下,如果傳入?yún)?shù)-1,可以從一個對話框中選擇壓縮方法和壓縮參數(shù)。
      fps
      被創(chuàng)建視頻流的幀率。
      frame_size
      視頻流的大小。
      is_color
      如果非零,編碼器將希望得到彩色幀并進行編碼; 否則,是灰度幀(只有在Windows下支持這個標志)。

      函數(shù)cvCreateVideoWriter創(chuàng)建視頻寫入器結(jié)構(gòu)。


      cvReleaseVideoWriter

      釋放視頻寫入器

      void cvReleaseVideoWriter( CvVideoWriter** writer );
      
      writer
      指向視頻寫入器的指針。

      函數(shù)cvReleaseVideoWriter結(jié)束視頻文件的寫入并且釋放這個結(jié)構(gòu)。


      cvWriteFrame

      寫入一幀到一個視頻文件中

      int cvWriteFrame( CvVideoWriter* writer, const IplImage* image );
      
      writer
      視頻寫入器結(jié)構(gòu)。
      image
      被寫入的幀。

      函數(shù)cvWriteFrame寫入/附加到視頻文件一幀。


      實用函數(shù)與系統(tǒng)函數(shù)


      cvInitSystem

      初始化HighGUI

      int cvInitSystem( int argc, char** argv );
      
      argc
      命令行參數(shù)個數(shù)。
      argv
      命令行參數(shù)數(shù)組。

      函數(shù)cvInitSystem初始化HighGUI。 如果在第一個窗口被創(chuàng)建前這個函數(shù)不能被用戶顯式地調(diào)用, 這個函數(shù)將以參數(shù)argc=0,argv=NULL隱式地被調(diào)用。 在Win32下,沒有必要顯式調(diào)用這個函數(shù)。 在X Window下,參數(shù)也許被用來自定義一個HighGUI窗口和控件的外觀。


      cvConvertImage

      Converts one image to another with optional vertical flip

      void cvConvertImage( const CvArr* src, CvArr* dst, int flags=0 );
      
      src
      輸入圖像。
      dst
      目標圖像。必須為單通道或者3通道8位圖像。
      flags
      操作標志:
      CV_CVTIMG_FLIP - 垂直翻轉(zhuǎn)圖像。 CV_CVTIMG_SWAP_RB - 交換紅藍通道。 在OpenCV中,彩色圖像的通道順序是 BGR 然而在一些系統(tǒng)中,在顯式圖像之前通道順序應(yīng)該被翻轉(zhuǎn)為 (cvShowImage能夠自動轉(zhuǎn)換)。

      函數(shù)cvConvertImage轉(zhuǎn)換一幅圖像到另一幅圖像,如果需要的話可以垂直翻轉(zhuǎn)圖像。 這個函數(shù)被cvShowImage使用。


      按字母順序排列的函數(shù)列表


      C

      CaptureFromCAM ConvertImage CreateVideoWriter
      CaptureFromFile CreateTrackbar

      D

      DestroyAllWindows DestroyWindow

      G

      GetCaptureProperty GetWindowHandle GrabFrame
      GetTrackbarPos GetWindowName

      I

      InitSystem

      L

      LoadImage

      M

      MoveWindow

      N

      NamedWindow

      Q

      QueryFrame

      R

      ReleaseCapture ResizeWindow
      ReleaseVideoWriter RetrieveFrame

      S

      SaveImage SetMouseCallback ShowImage
      SetCaptureProperty SetTrackbarPos

      W

      WaitKey WriteFrame

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多