朱進
摘 要: 圖形分解技術在圖像處理中應用廣泛,EmguCV是.Net平臺下對OpenCV圖形處理庫的封裝。首先簡要介紹了OpenCV與EmguCV及其二者的聯系,然后著重介紹了運用EmguCV進行圖形分解的步驟與方法,給出了樣例流程圖,詳細介紹了關鍵函數的用法和其關鍵參數,最后給出了部分C#關鍵源代碼,以及運行該程序的平臺環境。運用EmguCV實現了圖形分解,所采用的程序在電腦鍵盤掃描識別中具有較大的應用價值。
關鍵詞: 圖形分解; EmguCV; OpenCV; 關鍵函數
中圖分類號:TP317.4 文獻標志碼:A 文章編號:1006-8228(2014)07-04-03
Abstract: Graphic decomposition technique is widely used in image processing applications. EmguCV Net platform is a graphics package for OpenCV library. The relation between OpenCV and EmguCV is briefly introduced. The use of EmguCV graphic decomposition is focused on. The procedures and methods, as well as a sample flow chart, are given. The usage of key functions and the parameters are described carefully. A part of C# source code and a platform to run the program are presented. In this paper graphic decomposition is achieved by EmguCV. The used program is valuable in computer keyboard scan cognition.
Key words: graphic decomposition; EmguCV; OpenCV; key functions
0 引言
EmguCV是.Net平臺下對OpenCV圖形處理庫的封裝,也就是OpenCV的.Net版本。OpenCV的全稱是:Open Source Computer Vision Library,它是一個基于開源發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,實現了圖形處理和計算機視覺方面的很多通用算法。而EmguCV運行在.Net兼容的編程語言下調用OpenCV的函數,如C#,VB等。EmguCV有兩層封裝,基礎層包含函數、結構和枚舉類型,直接對應于OpenCV;第二層包含了融入.Net優點的類。本文開發所使用的是EmguCV 2.3版本。
1 圖形分解過程
圖形分解技術種類較多,應用也十分廣泛。本文中的圖形分解主要是運用EmguCV技術,C#語言,將一幅圖形中的各個組成部分分解出來,例如實現如圖1所示的結果。
該圖片是一幅具有阿拉伯字母的鍵盤按鍵圖片,需要將其中各個字符的圖片部分全部分解出來。根據EmguCV技術特點,分解圖形需要經過以下步驟:
⑴ 取得各個圖形元素的圖形邊緣;
⑵ 對圖形邊緣進行膨脹處理;
⑶ 取得各個圖形元素的輪廓;
⑷ 根據這些輪廓,取得這些圖形元素的外接矩形;
⑸ 根據這些外接矩形的位置,從原圖上裁剪下這些圖形元素。
4 結束語
圖形分解在圖形處理技術中運用較多,其中EmguCV功能強大,能與.Net架構無縫對接,使圖形處理技術能更加容易使用。本文涉及的圖形分解技術,較能適應于目前運用廣泛的Windows平臺與.Net架構的軟件中,運用面較為廣泛。本文所采用的程序在電腦鍵盤掃描識別等方面會有較好的應用。而目前程序的應用領域還較窄,要使其運用在較為復雜的圖形分解,還需要進行一些修改與完善。
參考文獻:
[1] (美)Bradski.G, Kaehler.A著,于仕琪,劉瑞禎譯.學習OpenCV(中文版)[M].清華大學出版社,2009.
[2] 劉瑞禎,于仕琪.OpenCV教程:基礎篇[M].北京航空航天大學出版社,2007.
[3] 陳勝勇,劉盛.基于OpenCV的計算機視覺技術實現[M].科學出版社,2008.
[4] (美)Robert Laganiere著,張靜譯.OpenCV 2計算機視覺編程手冊[M].科學出版社,2013.
[5] 明日科技.C#從入門到精通(第三版)[M].清華大學出版社,2012.