歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 在wxWidgets中使用OpenCV繪制攝像頭圖像

在wxWidgets中使用OpenCV繪制攝像頭圖像

日期:2017/3/1 10:50:28   编辑:Linux編程

通過攝像頭采集圖像並在指定控件上顯示,需要用到OpenCV庫。

*OpenCV的全稱是OpenSource Computer Vision Library,是一個跨平台的計算機視覺庫。OpenCV是由英特爾公司發起並參與開發,以BSD許可證授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發實時的圖像處理、計算機視覺以及模式識別程序。OpenCV有很好的技術支持和論壇環境:中文Wiki:www.opencv.org.cn。最新版本是2.3.1。

用OpenCV庫在指定控件上顯示攝像頭采集圖像的主要思路是:首先指定攝像頭設備采集圖像數據,再以一定的圖像格式繪制在指定控件的設備上下文上。

*設備上下文(DeviceContext,DC):在wxWidgets中,所有的繪畫相關的動作,都是由設備上下文完成的。每一個設備上下文都是wxDC的一個派生類。從來就沒有直接在窗口上繪畫這種事情,每次在窗口上繪畫,都要先創建一個窗口繪畫設備上下文,然後在這個上下文上繪畫。

下面是wxWidgets中可以使用的設備上下文:

1、wxClientDC. 用來在一個窗口的客戶區繪畫;

2、wxBufferedDC. 用來代替wxClientDC來進行雙緩沖區繪畫;

3、wxWindowDC. 用來在窗口的客戶區和非客戶區(比如標題欄)繪畫.這個設備上下文極少使用而且也不是每個平台都支持;

4、wxPaintDC. 僅用在重繪事件的處理函數中,用來在窗口的客戶區繪畫;

5、wxBufferedPaintDC. 和wxPaintDC類似,不過采用雙緩沖區進行繪畫;

6、wxScreenDC. 用來直接在屏幕上繪畫;

7、wxMemoryDC. 用來直接在圖片上繪畫;

8、wxMetafileDC. 用來創建一個圖元文件(只支持Windows和Mac OS X);

9、wxPrinterDC. 用來在打印機上繪畫;

10、wxPostScriptDC. 用來在PostScript文件上或者在支持PostScript的印機上繪畫。

本設計中采用指向wxPanel控件的wxClientDC,在窗口的用戶區上繪制圖像。


一、在wxWidgets中使用OpenCV庫的步驟

1、在OpenCV的Wiki上可以下載到OpenCV各個版本在Windows、Linux下的源代碼。

2、為了編譯OpenCV庫的源代碼,需要使用開源的跨平台自動化建構系統CMake把源碼轉化為確指定IDE下的工程文件,借助IDE編譯生成庫文件(lib)。本設計中采用CMake將源代碼轉化為CodeBlocks下用MingW編譯的工程,所有的配置都已經自動生成,只需要在CodeBlocks下直接編譯即可。

*CMake 是一個開源的跨平台自動化建構系統,Cmake 並不直接建構出最終的軟件,而是產生標准的建構檔(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然後再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標准的方式建構他的軟件。


Browse Source選擇源代碼的目錄,Browse Build選擇生成工程的路徑。

打開左下角Configure,選擇CodeBlocks-MingGW Makefiles,指定生成CodeBlocks下的工程,采用MingGW編譯

器。

3、將用到的OpenCV頭文件加入wxWidgets工程,修改IDE的編譯配置選項,添加OpenCV的頭文件和庫文件,就可以在wxWidgets庫中使用OpenCV了。

Copyright © Linux教程網 All Rights Reserved