999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OpenCV圖像處理編程研究

2013-06-23 09:39:30李中健黃士飛西北工業大學自動化學院陜西西安709中國人民解放軍978部隊上海00436
電子設計工程 2013年10期
關鍵詞:排序結構

晁 越,李中健,黃士飛(.西北工業大學 自動化學院,陜西 西安 709;.中國人民解放軍978部隊 上海00436)

OpenCV的全稱是:Open Source Computer Vision Library。是Intel公司支持的開源計算機視覺庫。它輕量級而且高效——由一系列C函數和少量C++類構成,實現了圖像處理和計算機視覺方面的很多通用算法。由于OpenCV的源代碼是完全開放的,而且源代碼的編寫簡潔而又高效,特別是其中大部分的函數都已經過匯編最優化,以使之能高效而充分地利用英特爾系列處理芯片的設計體系,所以近年來在國外的圖像處理相關領域中被廣泛地使用,成為一種流行的圖像處理軟件。

1 OpenCV常用的數據結構

OpenCV設計了一些基礎的數據類型和一些幫助數據類型,在運用OpenCV函數庫進行編程的過程中,常常會需要用到這些結構類型,只有真正了解這些結構才能夠很好地利用OpenCV函數庫來解決問題。我們在此僅介紹IplImage進行介紹。通常情況下,使用DIB格式來處理圖像,而OpenCV庫則是使用 “IplImage”結構體來創造和處理圖像。由于OpenCV主要針對的是計算機視覺方面的處理,因此在函數庫中,最重要的結構體就是IplImage結構。IplImage結構來源于inter的另外一個函數庫IPL,該函數庫主要是針對圖像處理。使用這種格式的優點是可以比DIB格式表示更多的圖像性質,而且可以很方便地存取圖像中的像素值,IplImage結構的具體定義如下[1]:

width和height這兩個變量很重要,其次是depth和nchannals。depth變量的值取自ipl.h中定義的一組數據,但與在矩陣中看到的對應變量不同。因為在圖像中,我們往往將深度和通道數分開處理,而在矩陣中,我們往往同時表示它們。可用的深度值如表1所示(通道數nChannels可取的值是1,2,3或4)。

表1 OpenCV圖像類型Tab.1 Image types of OpenCV

2 OpenCV常用體系和常用函數

OpenCV1.0版本,包含以下5個部分:

1)CxCore:一些基本函數(各種數據類型的基本類型的基本運算等)。

2)CV:圖像處理和計算機視覺功能(圖像處理、結構分析、運動分析、物體跟蹤、模式識別、攝像機定標)。

3)CvAux:一些實驗性的函數。

4)HighGUI:用戶交互部分(GUI,圖像視頻I/O、系統調用函數)。

5)CvCam:linux版本中已經拋棄,windows版本中將directx支持加入HighGUI后,CVCam將徹底去掉。

下面介紹一下OpenCV中常用的3種函數:

1)LoadImage():圖像載入函數

語 法:IplImage*cvLoadImage(const char*filename,int iscolor=1);

參數類型說明

Filename const char*待載入圖像的名稱,包括圖像的擴展名

Iscolor int輔助參數項,可選正數、負數、零。正數表示強制作為三通道(彩色)圖像載入,零表示該圖像作為單通道(灰度)圖像,負數表示載入圖像的通道數由圖像文件自身決定

返回值:IplImage結構指針

2)NamedWindow():窗口定義函數

語 法:int cvNamedWindow (const char*name,unsigned long flags);

參數類型說明

Name const char*窗口名

Flags unsigned long窗口屬性指標值,可以選擇CV_WINDOW_AUTOSIZE

1和0兩種值。CV_WINDOW_AUTOSIZE表示窗口尺寸與原始尺寸相同,0表示以固定的尺寸顯示圖像

說明:cvNamedWindow創建一個放置圖像和rtackbar的窗口。被創建的窗口可以通過他們的名字被引用。如果已經存在這個名字的窗口,這個函數將不做任何事情。

返回值:無。

3)WaitKey():按鈕等待函數

語法:int cvWaitKey(int delay=0);

參數類型說明

Delay int等待按鍵。如果delay<=0,那么無限等待;否則等待delay毫秒這返回

說明:在程序循環中,有時候由于程序一直處于計算中,導致窗口無法重繪(比如讀出視頻中的所有幀并顯示),可以加入cvWaitKey函數,使程序等待幾毫秒,讓窗口完成重繪在執行其他操作。

3 Vincent算法的基本思想和實現

早期的分水嶺算法的效率較低,Vincent[3]提出的改進分水嶺算法使處理效率大大提高,使得分水嶺算法為越來越多的學者所重視。

Vincent分水嶺算法處理過程:

1)排序過程,按圖像各像素的灰度值進行升序排列;

2)浸沒過程,對每一層的閾值進行寬度優先搜索,通過queue結構(FIFO)完成;

下面對該算法的處理過程進行詳細的描述[4]:

1)排序過程

對指針進行操作,確定圖像精確的灰度級頻率分布。使得每個像素都可以被直接定位到排序數組中的唯一單元。

n,圖像的像素數目;

hmin,最低的灰度級別;

hmax,最高的灰度級別。

這種排序技術只需要2n步 “查找和處理”操作,(hmaxhmin-1)步“賦值”操作以得到累積頻率分布。所以,排序所需要的時間和所占用的內存幾乎可以忽略不計。從而,能夠直接從排序數組(元素為指向圖像像素的指針)中讀取給定層高的某層像素,用于下一步的浸沒操作。

2)浸沒過程

一旦,對圖像的像素排序完畢,就開始進行浸沒聚水盆的操作。假定,現在已經浸沒到高度為h的某層。每個被找到聚水盆(例如,每個聚水盆的相應最小值的點的高度都低于或等于h)被賦予一個唯一的標識。由于已經有了像素的排序數組,所以我們可以直接讀取h+1層的像素,并給賦給它們具體的值,這一過程稱為“MASK”。作為當前像素鄰居、已經被標識的像素被放進queue里。從這些像素開始,queue可以將標識好的聚水盆擴展,并遞歸浸沒過程,直至所有的像素都被處理。

4 OpenCV中分水嶺分割實現

OpenCV函數庫中分水嶺源代碼是在Vincent分水嶺算法的基礎上進行的改進。它首先計算灰度圖像[5]的梯度;這對山谷或沒有紋理的盆地(亮度是低的點)的形成有效,也對山頭或圖像中有主導線段的山脈(山脊對應的邊緣)的形成有效。然后開始從用戶指定點(或算法得到點)開始持續“灌注”盆地直到這些區域連在一起。基于這樣產生的標記就可以把區域合并到一起,合并后的區域又通過聚集的方式進行分割,好像圖像被“填充”起來一樣。通過這種方式,與指示點相連的盆地就為指示點“所擁有”。最終能把圖像分割成相應的標記區域。

更確切地說,該分水嶺算法允許用戶(或算法)來標記目標的某個部分為目標,或背景的某個部分為背景。用戶或算法可以通過畫一條簡單的線,有效地告知分水嶺算法把這些點像這樣的組合起來。接著分水嶺算法通過允許在梯度圖像中和片段連接的標識區域“擁有”邊沿定義的山谷來分割圖像。

分水嶺算法的函數定義如下[6]:

void cvWatershed(const CvArr*image,CvArr*markers);

這里image是一個8位 (三通道)的彩色圖像,而markers是單通道整型(IPL_DEPTH_32S),具有相同維數(x,y)。除非用戶(或算法)用正整數標記屬于同一部分的區域,markers的值都是0。

5 仿真結果

如圖2所示,左邊的青椒被標記為1,中間的青椒被標記為2,上邊的青椒被標記為3,右邊的被標記為4,背景被標記為5。程序通過對每個標記給定一個正整數,并把未標記的區域記為-1,從而告知分水嶺用戶標記的邊緣,并在此基礎上進行分水嶺分割,然后用隨機生成的顏色填充分割后的區域,得到最終的結果如圖3。

圖2 分割前標記圖Fig.2 Marked original image

圖3 分割結果圖Fig.3 Watershed segmentation image

6 結束語

由于時間的限制,本文僅在了解OpenCV初級使用的基礎上,對數字圖像進行了分割處理,并未達到自適應的效果。希望在研究生階段能深入了解OpenCV的特性,更好的掌握OpenCV的使用,通過該軟件提高對數字圖像的處理技術;并嘗試通過移植OpenCV在DSP平臺上實現圖像處理功能。

圖1 原圖像Fig.1 Original image

[1]陳勝勇,劉盛.基于OpenCV的計算機視覺技術實現[M].北京:科學出版社,2008.

[2]Gary Bradski and Adrian Kaebler.Learning OpenCV(影印版)[M].南京:東南大學出版社,2009.

[3]陳天華.數字圖像處理[M].北京:清華大學出版社,2007.

[4]景曉軍.圖像處理技術及應用[M].北京:國防工業出版社,2005.

[5]劉瑞禎,于仕琪.OpenCV教程基礎篇[M].北京:北京航空航天大學出版社,2007.

[6]章毓晉.圖像分割[M].北京:科學出版社,2001.

猜你喜歡
排序結構
排排序
排序不等式
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
恐怖排序
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
論《日出》的結構
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 国产特一级毛片| 日韩成人高清无码| 亚洲视频四区| 中文字幕 91| 看看一级毛片| 国产极品嫩模在线观看91| 国产成人高精品免费视频| 免费人成网站在线观看欧美| 欧美不卡二区| 国内老司机精品视频在线播出| 国产爽妇精品| 91国语视频| 免费在线一区| 国产视频入口| 亚洲男人在线天堂| 美女被躁出白浆视频播放| 日本a级免费| 亚洲人人视频| 91外围女在线观看| 中文字幕av一区二区三区欲色| 国产精品无码久久久久久| 国产精品无码制服丝袜| 黄色国产在线| 亚洲女同一区二区| 国模私拍一区二区| 国产波多野结衣中文在线播放| 国产成人精品无码一区二| 亚洲精品国偷自产在线91正片| 日本成人福利视频| 国产视频自拍一区| 亚洲欧洲日韩综合| 亚洲精品男人天堂| 天堂av高清一区二区三区| 亚洲国产日韩欧美在线| 国产精品女同一区三区五区| 四虎影视国产精品| 亚洲精品国产日韩无码AV永久免费网 | 色135综合网| 免费不卡在线观看av| 亚洲第一综合天堂另类专| 国产精品亚洲欧美日韩久久| 亚洲男人天堂2018| 成人在线视频一区| 欧美国产日韩一区二区三区精品影视| 99精品伊人久久久大香线蕉 | 亚洲二三区| 国产国产人成免费视频77777 | 午夜国产精品视频| 亚洲婷婷丁香| 日本免费一级视频| 色网在线视频| 亚洲—日韩aV在线| 亚洲精品欧美日韩在线| 麻豆国产精品一二三在线观看| 国产无吗一区二区三区在线欢| 狠狠色丁香婷婷| 欧洲欧美人成免费全部视频| 国产爽爽视频| 亚洲精品第一在线观看视频| 国产av无码日韩av无码网站| 中文字幕第1页在线播| 久久精品这里只有国产中文精品 | 亚洲成aⅴ人片在线影院八| 国产日本视频91| 波多野结衣无码视频在线观看| 欧美中文字幕一区二区三区| 欧类av怡春院| 亚洲一区无码在线| 亚洲日本中文字幕天堂网| 亚洲成人在线网| 日韩午夜福利在线观看| 亚洲成人www| 成人午夜免费观看| 永久在线播放| 日韩一区二区三免费高清| 五月激情婷婷综合| 日韩精品无码免费一区二区三区| 大香伊人久久| 无码高潮喷水在线观看| 亚洲精品你懂的| 亚洲国产精品无码AV| 免费在线a视频|