freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于圖像分割的圖像摳取算法的研究與實(shí)現(xiàn)本科畢業(yè)論文(參考版)

2025-06-26 15:49本頁面
  

【正文】 void fill(const Tamp。void fillRect(int x1, int y1, int x2, int y2, const Tamp。const Tamp。}Tamp。ImgRect(unsigned int w,unsigned int h)。c) template Class T class ImgRect此模板類對描述了一個與圖像長寬相同的矩陣容器,些矩陣容器可用來存儲像素的各種信息,如顏色,分割,標(biāo)簽等對應(yīng)各個像素的信息。 //協(xié)方差矩陣的特征值Real eigenvectors[3][3]。 //協(xié)方差矩陣和逆矩陣Real pi。 //協(xié)方差矩陣Real determinant?;唧w定義如下:struct Gaussian{CRGB mu。}}。 == b)return false。 == g amp。c) //對!= 運(yùn)算符進(jìn)行重載{if( == r amp。elsereturn false。amp。amp。 //R,G,B三個顏色分量bool operator == (const CRGB amp。a) class CRGB此類是用來描述像素的顏色信息,雖然在GDI和GDI+中都存在描述顏色的類或結(jié)構(gòu)如Class Color,Struct RGB但是由于算法只使用r,g,b三個顏色分量且還有一些基于其上的運(yùn)算操作,所以采用了自定義的顏色信息類。 數(shù)據(jù)結(jié)構(gòu)介紹及初始化1) 算法的數(shù)據(jù)結(jié)構(gòu)構(gòu)造在 GrabCut 算法的處理過程中,為了使算法實(shí)現(xiàn)起來更為方便,自定義了很多枚舉,結(jié)構(gòu)和類來對數(shù)據(jù)進(jìn)行結(jié)構(gòu)化和規(guī)范化。5 GrabCut 算法及輔助功能的實(shí)現(xiàn) GrabCut 算法的實(shí)現(xiàn)GrabCut 算法在用戶選取矩形框后,開始初始化各個相關(guān)的數(shù)據(jù)結(jié)構(gòu),然后建立混合高斯模型,再利用自學(xué)習(xí)的高斯組件,對分割進(jìn)行優(yōu)化,以獲得良好的目標(biāo)摳取結(jié)果。以為后面高斯混合組件的學(xué)習(xí)過程以及圖割與更新的迭代執(zhí)行準(zhǔn)備。之后,系統(tǒng)將提示并等待用戶選取矩形,若用戶未完成了矩形的選取則繼續(xù)等直到系統(tǒng)退出。Nlink描述了在相鄰像素間放置一個分段邊界的處罰值,這個處罰值就是一個對放置這個分段邊界的衡量值,這個值在梯度低的位置較高,過程中是不變的,和背景的可能性,這個值會隨著算法的進(jìn)行或迭代而發(fā)生改變 [13,3].Nlink的值可通過下式進(jìn)行計(jì)算: ??????2,exp(413),mndistzNmndist???? ?其中 表示像素m,n間的距離,而 表示的時像素m,n顏色的差值, ,dist ,nitz mz分別表示m,n處的顏色, 對于每一個像素都有兩個Tlink值一個表示其是背景像素的可能性,另一個則表示其是前:像素類型 前景區(qū)域 0 m_L背景區(qū)域 m_L 0未知區(qū)域 DFore(m) DBack(m)表41DFore和DBack分別表示了像素屬于前景和背景區(qū)域的可能性,它們的值可通過以下方式得到: (414)????logDmp??四川大學(xué)本科畢業(yè)論文 基于圖像分割的簡單圖像摳取算法的研究與實(shí)現(xiàn)21 算法流程介紹GrabCut 算法主要就是在以上三個步驟進(jìn)行反復(fù)迭代,從而便算法達(dá)到收斂,進(jìn)而得到分割結(jié)果。相似地,把背景摳圖區(qū)域中的每個像素重新分配到該像素“更適合”的高斯組件中去。這種變化就造成了一些像素的劃分信息從PartitionForeground變?yōu)镻artitionBackground,當(dāng)然也會有一些像素出現(xiàn)相反,就需要將前景摳圖區(qū)域中的每個像素重新分配到該像素“更適合”的高斯組件中去。(2)初始化劃分信息: 將用戶用矩形框選取的目標(biāo)區(qū)域初始化為前景劃分即初始化為PartitionForeground,將圖像的剩余區(qū)域初始化為PartitionBackground。另外,在 GraubCut 算法中混合高斯模型針對于前景背景都 分另需要 k 個模型,實(shí)際上就是將前景像素和背景像素分別劃分到了 k 個聚類,再根據(jù)各個聚類中像素分別計(jì)算出混合高斯模型中的各個屬性值,這些屬性有:1) 顏色均值:是一個 Color 型變量,根據(jù)聚類內(nèi)所有像素的顏色值計(jì)算得到。四川大學(xué)本科畢業(yè)論文 基于圖像分割的簡單圖像摳取算法的研究與實(shí)現(xiàn)195) 標(biāo)簽值:這個值標(biāo)記了該像素是屬于那一個塊,這兒對象的劃分是根據(jù) GrabCut 的劃分結(jié)果再進(jìn)行的進(jìn)一步劃分。4) 索引值:表示該像素屬于前景或背景混合高斯模型中的那一個,實(shí)際上就是指該像素是屬于前景或背景像素的那一個像素聚類。2) 三分圖信息:即標(biāo)定該像素是屬于那一個區(qū)域,整個圖像的像素都會被劃分到三個區(qū)域即前景區(qū)域,背景區(qū)域,以及未知區(qū)域,用一個枚舉來表示,即enum AreaValue { AreaUnknown, AreaForeground, AreaBackground }。,jjj gxux???? ??再使用以下 3 個公式不斷進(jìn)行參數(shù)更新: (410)??1njiijjiixu??? (411)???211nTjijijij njiixuxd????? (412)??1,2,njjiix????直到高斯函數(shù)的參數(shù)和權(quán)重( , )到達(dá)可以接受的變化或者出現(xiàn)穩(wěn)定的情況就可1?2以了。, (49)。,。這樣?1N10?n?},{?n?就可將其看成一個二分類問題,而高斯混合在處理二分類問題時其概率參數(shù)可用如下方法估算:首先高斯密度函數(shù)可表示為: ?????/22 2。GrabCut 方法在 GraphCuts 方法的基礎(chǔ)上作了以下幾方面的改進(jìn)所得到的:第一,利用高斯混合模型(Gaussian Mixture Model,GMM)取代直方圖來描述前景與背景像素的分布,由對灰度圖像的處理上升到對彩色圖像的處理;第二,利用迭代方法求取高斯混合模型中的各個參數(shù)替代了一次最小化估計(jì)來完成能量最小化的計(jì)算過程;第三,通過非完全標(biāo)記方法,減少了用戶在交互過程中的工作量,用戶只需利用矩形框標(biāo)記出背景區(qū)域即可 [11]. GrabCut 算法準(zhǔn)備 高斯混合模型介紹高斯混合模型(Gaussian mixture model,簡稱GMM)是單一高斯機(jī)率密度函數(shù)的延伸,.高斯混合模型在高斯分量的個數(shù)k給定的前提下,已經(jīng)有比較成熟的建?;蚬烙?jì)方法。是一種比較有前途的交互式分割算法。而GrabCut算法綜合利用了紋理及邊界兩種信息來實(shí)現(xiàn)圖像分割。其分割準(zhǔn)確度與算法執(zhí)行效率較高,且交互操作量極少。四川大學(xué)本科畢業(yè)論文 基于圖像分割的簡單圖像摳取算法的研究與實(shí)現(xiàn)17E2定義為與梯度相關(guān)的一個函數(shù): (45)??2||ijCij??E2的作用是減少在顏色相近的像素之間,存在標(biāo)記變化的可能,即使其只發(fā)生在邊界上。首先用 KMean 方法將 F,B 的節(jié)點(diǎn)聚類,計(jì)算每一個類的平均顏色, 代表所有前景}{FnK類的平均顏色集合,背景類是 。圖像分割},{?VG??可以當(dāng)作一個二元標(biāo)記問題,每一個 ,有唯一的一個 {前景為1,背景為0} 與i??ix之對應(yīng)。另外,景物光柵化之后被送入幀緩沖器之前還可以根據(jù)需要對象素?cái)?shù)據(jù)進(jìn)行操作。4)把景物模型的數(shù)學(xué)描述及其色彩信息轉(zhuǎn)換至計(jì)算機(jī)屏幕上的象素,這個過程也就是光柵化(rasterization) [9]。2)把景物模型放在三維空間中的合適的位置,并且設(shè)置視點(diǎn)(viewpoint)以觀察所感興趣的景觀?! ≌麄€流程操作的最后,圖形片元都要進(jìn)行一系列的逐個片元操作,這樣最后的象素值才能送入幀緩沖器實(shí)現(xiàn)圖形的顯示。然后才能很好的進(jìn)行光柵化操作形成細(xì)小的圖形?! ≈饌€頂點(diǎn)操作幀緩沖區(qū)光柵化紋理映射圖像操作逐個圖元操作和圖元組裝運(yùn)算器顯示列表幾何頂點(diǎn)數(shù)據(jù)圖像像素?cái)?shù)據(jù)四川大學(xué)本科畢業(yè)論文 基于圖像分割的簡單圖像摳取算法的研究與實(shí)現(xiàn)15OpenGL 對所有的幾何圖元都采用頂點(diǎn)來描述,這是為了方便使用運(yùn)算器來方便的進(jìn)行計(jì)算。圖像數(shù)據(jù)與幾何頂點(diǎn)數(shù)據(jù)在后期的處理過程是一致的,而在前面的處理中,圖像數(shù)據(jù)不經(jīng)過運(yùn)算器,也不會進(jìn)行單個圖元的操作,它只是完成圖像操作。 OpenGL 工作流程OpenGL 的工作流程如下圖示:圖 33在上圖中幾何頂點(diǎn)數(shù)據(jù)可以是頂點(diǎn),線或者多邊形集等,這些數(shù)據(jù)會首先經(jīng)過運(yùn)算器,再逐個圖元進(jìn)行操作,最后光柵化,再逐個片元處理直到最后寫入幀緩沖區(qū)中。對象被描述為一系列的頂點(diǎn)(用來定義幾何對象)或像素(用來定義圖像) 。 OPENGL 簡介OpenGL 是圖形硬件的一個軟件接口。2) 名字空間GDI+,將在名字空間 Gdiplus 下面進(jìn)行工作,因此,在應(yīng)用程序必須聲明 [7,4]。GDI+為這一復(fù)雜任務(wù)提供了大量的函數(shù)來完成各種不同風(fēng)格的文本輸出。四川大學(xué)本科畢業(yè)論文 基于圖像分割的簡單圖像摳取算法的研究與實(shí)現(xiàn)14所以,在 GDI+中就有幾個類用于處理這些復(fù)雜的位圖信息,CachedBitmap(緩存位圖)類就是一個例子,該類用于在內(nèi)存中存儲位圖以便快速訪問和顯示位圖。位圖是代表屏幕上單個點(diǎn)的顏色的數(shù)字陣列。一幅包含一個擁擠的足球場的高辨率數(shù)字圖像更難用矢量技術(shù)創(chuàng)建。②顯示圖像 [7,2]某些圖像難以或不可能使用矢量圖形技術(shù)來表示。貝塞爾曲線是一種用 4 個控制點(diǎn)來指點(diǎn)的復(fù)雜曲線。例如,一條直線可用兩個點(diǎn)指定,一個矩形可用給出其左上角位置的點(diǎn)和它的寬度與高度的數(shù)值來指定。GDI+讓程序員在設(shè)計(jì)程序時不用考慮到具體的顯示器或打印機(jī),直接使用由 GDI+提供的類的方法便可以在顯示器或打印機(jī)等輸出設(shè)備上進(jìn)行圖形或文本的輸出,真正做到與設(shè)備無關(guān) [6,3]。此組件將轉(zhuǎn)換和傳送由程序發(fā)送到設(shè)備的數(shù)據(jù),以及由設(shè)備發(fā)送到程序的數(shù)據(jù)。不過程序和設(shè)備之間并不直接進(jìn)行通信,否則,就必須為與程序交互的每臺設(shè)備編寫用戶接口代碼 [6,1]。 GDI+介紹GDI+是一個庫,它提供了一個接口,此接口允許程序員編寫與打印機(jī),監(jiān)視器或文件等圖形設(shè)備進(jìn)行交互的 Windows 和 Web 圖形應(yīng)用程序。在 Windows 操 作 系 統(tǒng) 下 , 絕 大 多 數(shù) 具 備 圖 形 界 面 的 應(yīng) 用 程 序 都 離 不 開 GDI, 我們 利 用 GDI 所 提 供 的 眾 多 函 數(shù) 就 可 以 方 便 的 在 屏 幕 、 打 印 機(jī) 及 其 它 輸 出 設(shè) 備 上 輸 出 圖形 , 文 本 等 操 作 。文檔框架窗口從CMdiChildWnd 派生,文檔框架窗口包含視,視從 CView 或其派生類派生 [4,9]。圖 32 所示的類都是從 CObject 類派生出來的;所有處理消息的類都是從 CCmdTarget類派生的。應(yīng)用程序通過文檔模板類對象來管理上述對象(應(yīng)用程序?qū)ο蟆⑽臋n對象、主邊框窗口對象、文檔邊框窗口對象、視對象)的創(chuàng)建。⑥文檔模板文檔模板類一般不需要派生。⑤視圖視類從 CView 或它的派生類派生。④文檔四川大學(xué)本科畢業(yè)論文 基于圖像分割的簡單圖像摳取算法的研究與實(shí)現(xiàn)12文檔類從 CDocument 類派生,用來管理數(shù)據(jù),數(shù)據(jù)的變化、存取都是通過文檔實(shí)現(xiàn)的。邊框窗口用來管理文檔邊框窗口、視窗口、工具條、菜單、加速鍵等,協(xié)調(diào)半模式狀態(tài)。SDI 的窗口類是從 CFrameWnd 派生而來,而 MDI 的窗口類則分別是從CMDIFrameWnd 和 CChildWnd 派生而來 [4,8]。并且在整個程序運(yùn)行的過程中都可以調(diào)用 theApp 對象,對其進(jìn)行引用。①應(yīng)用程序應(yīng)用程序類派生于 CWinApp。主框架窗口包含了視圖窗口、工具條和狀態(tài)欄。1)構(gòu)成應(yīng)用程序的對象 圖 31 解釋了該應(yīng)用程序的結(jié)構(gòu),箭頭表示信息流向。 MDI 應(yīng)用程序構(gòu)成上面對 MFC 的編程框架做了介紹,現(xiàn)在就 MDI VC 的AppWizard 可以在很方便的情況下生成一個 MDI 應(yīng)用程序,這個使用 AppWizard 生成的MDI 程序框架,包含很多 MFC 為簡化用戶開發(fā)而生成的文件,它們能夠使用戶在極為方便的情況下得到想要實(shí)現(xiàn)的效果。例如,繼承時,應(yīng)用程序特定的事件由程序員的派生類來處理,不感興趣的由基類處理??蚣芑蛘哂善浔旧硖幚硎录?,不依賴程序員的代碼;或者調(diào)用程序員的代碼來處理應(yīng)用程序特定的事件 [4,5]。同時,MFC 支持對底層 API 的直接調(diào)用 [4,4]。但是如果能夠?qū)@些不透明的實(shí)現(xiàn)有著很好的理解,那么就能夠在開發(fā)中更加的隨心所欲,甚至說對其實(shí)現(xiàn)進(jìn)行優(yōu)化。又如,為了實(shí)現(xiàn)對 DLL 編程的支持和多線程編程的支持,MFC 的內(nèi)部同樣必須采用一些內(nèi)部約定的方法對其進(jìn)行如初始化,信息管理,句柄獲取等一系列必須的
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1