朱進(jìn)
摘 要: 圖形分解技術(shù)在圖像處理中應(yīng)用廣泛,EmguCV是.Net平臺(tái)下對(duì)OpenCV圖形處理庫(kù)的封裝。首先簡(jiǎn)要介紹了OpenCV與EmguCV及其二者的聯(lián)系,然后著重介紹了運(yùn)用EmguCV進(jìn)行圖形分解的步驟與方法,給出了樣例流程圖,詳細(xì)介紹了關(guān)鍵函數(shù)的用法和其關(guān)鍵參數(shù),最后給出了部分C#關(guān)鍵源代碼,以及運(yùn)行該程序的平臺(tái)環(huán)境。運(yùn)用EmguCV實(shí)現(xiàn)了圖形分解,所采用的程序在電腦鍵盤(pán)掃描識(shí)別中具有較大的應(yīng)用價(jià)值。
關(guān)鍵詞: 圖形分解; EmguCV; OpenCV; 關(guān)鍵函數(shù)
中圖分類(lèi)號(hào):TP317.4 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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平臺(tái)下對(duì)OpenCV圖形處理庫(kù)的封裝,也就是OpenCV的.Net版本。OpenCV的全稱(chēng)是:Open Source Computer Vision Library,它是一個(gè)基于開(kāi)源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類(lèi)構(gòu)成,實(shí)現(xiàn)了圖形處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。而EmguCV運(yùn)行在.Net兼容的編程語(yǔ)言下調(diào)用OpenCV的函數(shù),如C#,VB等。EmguCV有兩層封裝,基礎(chǔ)層包含函數(shù)、結(jié)構(gòu)和枚舉類(lèi)型,直接對(duì)應(yīng)于OpenCV;第二層包含了融入.Net優(yōu)點(diǎn)的類(lèi)。本文開(kāi)發(fā)所使用的是EmguCV 2.3版本。
1 圖形分解過(guò)程
圖形分解技術(shù)種類(lèi)較多,應(yīng)用也十分廣泛。本文中的圖形分解主要是運(yùn)用EmguCV技術(shù),C#語(yǔ)言,將一幅圖形中的各個(gè)組成部分分解出來(lái),例如實(shí)現(xiàn)如圖1所示的結(jié)果。
該圖片是一幅具有阿拉伯字母的鍵盤(pán)按鍵圖片,需要將其中各個(gè)字符的圖片部分全部分解出來(lái)。根據(jù)EmguCV技術(shù)特點(diǎn),分解圖形需要經(jīng)過(guò)以下步驟:
⑴ 取得各個(gè)圖形元素的圖形邊緣;
⑵ 對(duì)圖形邊緣進(jìn)行膨脹處理;
⑶ 取得各個(gè)圖形元素的輪廓;
⑷ 根據(jù)這些輪廓,取得這些圖形元素的外接矩形;
⑸ 根據(jù)這些外接矩形的位置,從原圖上裁剪下這些圖形元素。
4 結(jié)束語(yǔ)
圖形分解在圖形處理技術(shù)中運(yùn)用較多,其中EmguCV功能強(qiáng)大,能與.Net架構(gòu)無(wú)縫對(duì)接,使圖形處理技術(shù)能更加容易使用。本文涉及的圖形分解技術(shù),較能適應(yīng)于目前運(yùn)用廣泛的Windows平臺(tái)與.Net架構(gòu)的軟件中,運(yùn)用面較為廣泛。本文所采用的程序在電腦鍵盤(pán)掃描識(shí)別等方面會(huì)有較好的應(yīng)用。而目前程序的應(yīng)用領(lǐng)域還較窄,要使其運(yùn)用在較為復(fù)雜的圖形分解,還需要進(jìn)行一些修改與完善。
參考文獻(xiàn):
[1] (美)Bradski.G, Kaehler.A著,于仕琪,劉瑞禎譯.學(xué)習(xí)OpenCV(中文版)[M].清華大學(xué)出版社,2009.
[2] 劉瑞禎,于仕琪.OpenCV教程:基礎(chǔ)篇[M].北京航空航天大學(xué)出版社,2007.
[3] 陳勝勇,劉盛.基于OpenCV的計(jì)算機(jī)視覺(jué)技術(shù)實(shí)現(xiàn)[M].科學(xué)出版社,2008.
[4] (美)Robert Laganiere著,張靜譯.OpenCV 2計(jì)算機(jī)視覺(jué)編程手冊(cè)[M].科學(xué)出版社,2013.
[5] 明日科技.C#從入門(mén)到精通(第三版)[M].清華大學(xué)出版社,2012.