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

正文內(nèi)容

工業(yè)ct體繪制和缺陷分割統(tǒng)計(jì)算法研究及交互軟件畢業(yè)論文-資料下載頁

2025-06-28 00:45本頁面
  

【正文】 )都可以接受從CPU內(nèi)存端傳過來的數(shù)據(jù),作為GPU內(nèi)的數(shù)據(jù)源,但是從GPU端到CPU端的數(shù)據(jù)傳輸,都只能交給全局存儲(chǔ)器了,因?yàn)槌A考凹y理存儲(chǔ)器的內(nèi)容都不能在GPU端被更改,而且,如果確實(shí)需要在各個(gè)塊之間共享數(shù)據(jù)或者通信,全局存儲(chǔ)器就是必不可少的,當(dāng)然如果是需要共享一些常量,常量存儲(chǔ)器就派上用場了,由于是只讀區(qū)域,所以存放一些需要頻繁訪問的只讀參數(shù)也是很好的選擇,而且常量存儲(chǔ)器一般被安排在GPU中的只讀區(qū)域,提供了友好的緩存機(jī)制,這里常量是相對(duì)的,因?yàn)槭菑腃PU端傳過來的,所以CPU端具有修改權(quán),由于這樣的特性,常量及紋理存儲(chǔ)器可以用作特殊用途,提升程序的魯棒性及效率。紋理存儲(chǔ)器,作為GPU中比較特殊的部分,具有一些特殊的功能[11],包括地址映射、數(shù)據(jù)濾波、緩存等,而這些功能都是圍繞紋理渲染的需求設(shè)計(jì)的,這也是早期圖形處理專用的單元。紋理存儲(chǔ)器作為CUUA中一種特別的存儲(chǔ)器,其使用大致分為幾個(gè)過程:首先設(shè)置傳送數(shù)據(jù)的通道,通過通道在GPU端申請(qǐng)存儲(chǔ)空間,然后拷貝數(shù)據(jù)到GPU中,最后通過設(shè)置紋理參數(shù),并將之前申請(qǐng)的空間與紋理進(jìn)行綁定。紋理中的數(shù)據(jù)獲取是通過紋理拾取得到的。紋理存儲(chǔ)器也提供緩存機(jī)制來提高紋理拾取效率,紋理存儲(chǔ)器提供了浮點(diǎn)數(shù)拾取坐標(biāo),將范圍限制在中。最為重要的是在紋理存儲(chǔ)器中,提供了濾波功能,濾波包括最近鄰點(diǎn)與線性插值濾波,線性濾波根據(jù)紋理的維度而定,可以對(duì)兩個(gè)元素(針對(duì)一維紋理)、四個(gè)元素(針對(duì)二維紋理)及八個(gè)元素(針對(duì)三維紋理)來進(jìn)行線性差值運(yùn)算,此運(yùn)算不占用可編程單元,并提供額外的浮點(diǎn)數(shù)處理能力[11]。對(duì)于一些需要進(jìn)行插值處理的數(shù)據(jù),這是一個(gè)可供參考的選擇。CUDA充分利用了GPU的各項(xiàng)能力,提供一個(gè)友好的接口,來改善GPU的可編程性,下面將介紹本文利用CUDA對(duì)體繪制算法的加速。 CUDA加速體繪制算法對(duì)于體繪制算法,其并行性是非常良好的,對(duì)于每條射線,都可以看做一個(gè)獨(dú)立的可并行元素來考慮。圖 成像平面像素與CUDA線程對(duì)應(yīng)關(guān)系Figure The corresponding relationship between imaging plane pixels and CUDA threads上圖中給出了成像平面像素與CUDA線程的一一對(duì)應(yīng)關(guān)系,由于CUDA的核函數(shù)是通過塊來運(yùn)行的,所以還需要將這些線程組織在一系列塊中。這里考慮到SM中SP的數(shù)量以及每個(gè)SM中的存儲(chǔ)容量的限制,將塊的大小設(shè)置為固定的大小:。而成像平面大小和是作為參數(shù)傳入核函數(shù)中的,通過公式()的計(jì)算,可以得到整個(gè)網(wǎng)格中塊的維度。通過這樣的方式,將整個(gè)體繪制的計(jì)算任務(wù)合理劃分給CUDA核函數(shù)去計(jì)算,而具體的核函數(shù)的實(shí)現(xiàn),包括以下步驟:Step1:根據(jù)當(dāng)前線程在塊中的位置以及塊在網(wǎng)格中的位置,計(jì)算出其對(duì)應(yīng)的成像平面的坐標(biāo),如果坐標(biāo)超出成像平面范圍,直接返回,否則,進(jìn)入Step2。Step2:根據(jù)旋轉(zhuǎn)矩陣以及線程對(duì)應(yīng)的成像平面坐標(biāo),確定視角坐標(biāo)、光源坐標(biāo)、以及射線的方向向量。Step3:根據(jù)包圍盒參數(shù)以及旋轉(zhuǎn)矩陣,確定最近與最遠(yuǎn)取樣點(diǎn)坐標(biāo)。Step4:根據(jù)最近取樣點(diǎn)以及步長,進(jìn)入沿射線方向的循環(huán)采樣合成階段::根據(jù)當(dāng)前的采樣點(diǎn)位置,在三維紋理中進(jìn)行拾取,得到梯度及物體的密度信息。:根據(jù)物體的密度信息,在傳遞函數(shù)綁定的一維紋理中取得顏色和不透明度信息。:根據(jù)光照模型以及體繪制的遞歸公式進(jìn)行顏色和不透明度合成。:根據(jù)合成得到當(dāng)前的累加不透明度,如果該值大于或等于規(guī)定的閾值,退出循環(huán),進(jìn)入Step5;否則,根據(jù)采樣步長將采樣點(diǎn)沿射線方向移動(dòng)一步。Step5:將循環(huán)中得到的累加顏色及不透明度信息傳給全局?jǐn)?shù)組,以便核函數(shù)結(jié)束后將結(jié)果傳入到CPU中。上面從整體上搭建好了CUDA核函數(shù)以及線程的任務(wù)分配,最后給出整個(gè)體繪制算法的步驟:Step1:在CPU端進(jìn)行必要的初始化工作,包括三維數(shù)據(jù)的載入,梯度計(jì)算,梯度的三個(gè)分量與體數(shù)據(jù)密度信息的合成,此合成將形成四通道的浮點(diǎn)(32位)數(shù)據(jù)(梯度的三個(gè)分量以及密度信息,每個(gè)通道一個(gè)分量)。Step2:設(shè)置數(shù)據(jù)傳輸通道參數(shù)、在GPU端分配存儲(chǔ)空間并將數(shù)據(jù)拷貝到GPU的中,然后設(shè)置紋理參數(shù)并與此存儲(chǔ)空間進(jìn)行綁定,形成一個(gè)三維紋理(其大小為原始三維數(shù)據(jù)的三個(gè)維度,每個(gè)節(jié)點(diǎn)的信息為四個(gè)浮點(diǎn)數(shù)據(jù))以及一個(gè)一維紋理(傳遞函數(shù))。Step3:將包圍盒參數(shù)、旋轉(zhuǎn)矩陣參數(shù)傳入到GPU端的常數(shù)存儲(chǔ)區(qū)。Step4:調(diào)用核函數(shù)(核函數(shù)的參數(shù)主要包含生成圖像的大小和一些效果控制參數(shù)),程序控制權(quán)從CPU轉(zhuǎn)換到GPU中。Step5:在GPU端根據(jù)核函數(shù)進(jìn)行計(jì)算并得到最后的結(jié)果(二維圖像數(shù)據(jù))。Step6:最后將結(jié)果從GPU端傳輸?shù)紺PU端。本文對(duì)輸入的三維CT數(shù)據(jù)采用了紋理綁定,并且在綁定之前,先將體數(shù)據(jù)中的每個(gè)點(diǎn)的梯度計(jì)算出來,這樣可以減少實(shí)時(shí)計(jì)算的量,提高整體效率,而且可以利用紋理中的濾波進(jìn)行插值處理,然后將體數(shù)據(jù)的密度信息與梯度的三個(gè)分量結(jié)合,在結(jié)合后的三維數(shù)據(jù)中,每個(gè)節(jié)點(diǎn)包含了四個(gè)浮點(diǎn)數(shù),主要是考慮到要充分利用CPU到GPU的傳輸通道,減少傳輸次數(shù)以及紋理拾取次數(shù),從而提高程序的整體效率,然后考慮到體繪制過程中需要大量的線性插值計(jì)算(插值計(jì)算在每次取樣的時(shí)候都會(huì)涉及到),故借助于紋理濾波及拾取,通過GPU本身的硬件處理能力將插值過程進(jìn)行優(yōu)化,來提升算法整體效率。最后給出整個(gè)算法的流程結(jié)構(gòu)圖: CUDA加速體繪制流程圖Figure CUDA accelerated volume rendering flowcharts此流程圖中多了兩個(gè)步驟,主要是針對(duì)第三章中的缺陷顯示,多了三維CV分割以及三維區(qū)域生長。 總結(jié)本章主要是對(duì)CUDA進(jìn)行介紹,利用GPU的并行處理來加速體繪制算法,合理安排線程塊結(jié)構(gòu),來提升程序執(zhí)行效率,利用CUDA中的紋理存儲(chǔ)器和常數(shù)存儲(chǔ)器,借助紋理綁定及紋理自帶的濾波,來加速體繪制算法,從而使得體繪制在實(shí)際的應(yīng)用中能夠達(dá)到可人工交互的顯示頻率,在應(yīng)用軟件中,是非常具有實(shí)際意義的。 第五章 體繪制軟件的設(shè)計(jì)與實(shí)現(xiàn) 引言軟件作為計(jì)算機(jī)重要的組成部分,作用于硬件之上,借助硬件完成需要完成的任務(wù),應(yīng)用軟件是在操作系統(tǒng)之上的計(jì)算機(jī)程序,完成一些特定的功能。作為一款軟件,最基本的要求應(yīng)該是要完成其定義的最基本功能,其次是其穩(wěn)定性要盡量高,可操作性要強(qiáng),考慮到其后期的維護(hù)以及版本的升級(jí),其可擴(kuò)充性也應(yīng)該在設(shè)計(jì)之初進(jìn)行考慮。一般來說做好一款軟件并非一件容易的事,軟件開發(fā)是一項(xiàng)包括需求捕捉,需求分析,設(shè)計(jì),實(shí)現(xiàn)和測試以及發(fā)布的系統(tǒng)工程?;谶@些基本準(zhǔn)則以及開發(fā)流程,本文針對(duì)工業(yè)CT重建數(shù)據(jù)開發(fā)出一款特定的體繪制軟件,主要包括一般的體顯示、體剖切顯示、缺陷分割及統(tǒng)計(jì)顯示。下面就具體介紹整個(gè)軟件的框架及實(shí)現(xiàn)。 主要框架本軟件是基于MFC進(jìn)行開發(fā)的,MFC作為微軟推出的在Windows操作系統(tǒng)中的基本類庫,封裝了大量Windows的API(Application Programming Interface),其中包含了一個(gè)應(yīng)用程序框架,開發(fā)人員可以將此框架作為基礎(chǔ)來節(jié)約開發(fā)時(shí)間。Figure The overall effect diagram of the software本軟件主要包括工具欄(上)、主視圖(左)以及控制視圖(右)三個(gè)部分。其中工具欄主要集中了主視圖切換、控制視圖切換、輔助功能調(diào)用。而主視圖,作為體繪制結(jié)果的呈現(xiàn)窗口,主要利用了OpenGL(Open Graphics Library)這個(gè)圖形操作接口,可以很方便且快速的顯示二維圖像,而且OpenGL提供了一組函數(shù)接口來方便獲取鼠標(biāo)等外部設(shè)備的操作,最終生成我們需要的旋轉(zhuǎn)或者平移數(shù)據(jù),這在實(shí)時(shí)動(dòng)態(tài)顯示中是十分重要的,最后將這些獲取的參數(shù)進(jìn)行必要的轉(zhuǎn)換然后傳遞給體繪制函數(shù),進(jìn)行實(shí)時(shí)變化繪制。本軟件主要利用到了GpenGL的雙緩存機(jī)制來實(shí)現(xiàn)顯示,使其在實(shí)時(shí)顯示的時(shí)候更加流暢,而后利用到了OpenGL內(nèi)置的矩陣,來記錄操作以提供給CUDA來使用,做到實(shí)時(shí)響應(yīng)。主視圖除了可以顯示體繪制結(jié)果,還可以切換到切片顯示模式,來對(duì)原始數(shù)據(jù)的切片進(jìn)行顯示。除了主視圖,控制視圖在整個(gè)軟件中起到了非常重要的作用,控制視圖也可以進(jìn)行切換,每個(gè)控制視圖包含了一系列關(guān)系相對(duì)緊密的功能。 部分控制界面視圖Figure Part of the control interface view 部分控制界面視圖Figure Part of the control interface view,左邊的控制視圖是用來人工調(diào)節(jié)傳遞函數(shù)的,包括了透明度以及顏色的三個(gè)分量;中間的控制視圖,用來設(shè)置包圍盒,實(shí)現(xiàn)簡單體剖切;右邊的控制視圖,是用來設(shè)置三維CV分割的參數(shù)以及區(qū)域生長統(tǒng)計(jì)分類需要的體積向量。,左邊是加載數(shù)據(jù)源以及顯示數(shù)據(jù)源信息和原始數(shù)據(jù)切片的控制視圖;中間是一個(gè)輔助功能視圖,用來保存顯示結(jié)果和進(jìn)行自動(dòng)變化演示;右邊是集成的其他功能,利用了整個(gè)框架的可擴(kuò)展性。上面這樣的整體視圖構(gòu)建,是基于SDMV(Single Document Multi View)[55]這樣的一種模式來實(shí)現(xiàn)的,SDMV主要是利用到類CSplitterWnd來實(shí)現(xiàn)視圖分割的,CSplitterWnd類可以將一個(gè)窗口分成多個(gè)視圖窗口,每個(gè)窗口需要一個(gè)視圖類來進(jìn)行管理,通過這樣的方式,本軟件將整體的大窗口分成左右兩部分,左邊負(fù)責(zé)主視圖顯示,右邊負(fù)責(zé)控制視圖的顯示,根據(jù)需要,又將右邊再一次進(jìn)行分割,得到幾個(gè)不同的控制視圖(可根據(jù)需求擴(kuò)充),這樣分割的目的,是為了將不同的功能集中在不同的控制視圖中,防止將所有功能放在一個(gè)視圖中而造成雜亂無章的現(xiàn)象,并且這樣也自然而然地將不同的功能塊進(jìn)行了分離,方便軟件的整體管理以及測試,增強(qiáng)其穩(wěn)定性。 視圖分割結(jié)構(gòu)圖Figure Split views Structure上面已經(jīng)對(duì)軟件的主要框架進(jìn)行了介紹,下面將介紹最為核心的部分:功能實(shí)現(xiàn)。本文采用的是DLL這種方式,作為Windows系統(tǒng)中最為核心的東西,DLL在Windows軟件設(shè)計(jì)中占有舉足輕重的地位。自從MicroSoft公司推出第一個(gè)版本的Windows操作系統(tǒng)以來,DLL一直是這個(gè)操作系統(tǒng)的基礎(chǔ)。Windows API中的所有函數(shù)都包含在DLL中[56]。DLL是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼與數(shù)據(jù)的庫,但是其本身不是可執(zhí)行文件,DLL的使用可以有效地簡化軟件項(xiàng)目的管理,并且有助于節(jié)約內(nèi)存,一個(gè)DLL在需要的時(shí)候才被裝入內(nèi)存,而在不需要的時(shí)候,可以將其從內(nèi)存中清除,這樣可以節(jié)約內(nèi)存空間,并且也可以使應(yīng)用程序本身的體積變小,在程序啟動(dòng)時(shí)不至于等待很長時(shí)間。本文將以下一些功能分別在不同的DLL中實(shí)現(xiàn):三維CV分割、三維區(qū)域生長、體繪制。這些功能塊有其特有的接口,并且在組裝之前,都是經(jīng)過單獨(dú)測試過的,這樣可以避免在一個(gè)較大系統(tǒng)中來調(diào)試這些功能塊,提高開發(fā)效率。得益于SDMV這個(gè)模型以及DLL模塊化,本軟件的可擴(kuò)充性也非常良好,可以通過將需要擴(kuò)展的功能塊進(jìn)行模塊化,提供接口并生成相應(yīng)的DLL,然后通過SDMV在控制視圖中進(jìn)行功能塊的擴(kuò)充,這種擴(kuò)充并不會(huì)影響到其他控制塊的功能,由于在這些控制視圖之間采用的是Windows的消息傳遞機(jī)制,所以在設(shè)計(jì)每個(gè)控制視圖類的時(shí)候,將能夠接受的消息功能都實(shí)現(xiàn),就能很容易擴(kuò)充到整個(gè)軟件中了。 總結(jié)本文的三維體繪制軟件,主要基于MFC這個(gè)應(yīng)用程序框架,利用SDMV這個(gè)模型,并通過CSplitterWnd這樣一個(gè)類來實(shí)現(xiàn)了視圖分割,將主視圖與控制塊分開,有將不同的控制塊繼續(xù)分成幾個(gè)部分,最核心的功能塊都是通過DLL這樣的方式來實(shí)現(xiàn)的,方便開發(fā)與測試,而且使得整個(gè)應(yīng)用程序具有更好的可擴(kuò)充性。其中主視圖的顯示是通過OpenGL來實(shí)現(xiàn)的,目的是為了提供更好的交互機(jī)制以及利用其雙緩存機(jī)制,使顯示更加流暢。 第六章 總結(jié)與展望 主要結(jié)論本文主要針對(duì)工業(yè)CT重建數(shù)據(jù)的體繪制進(jìn)行相關(guān)算法研究。研究類容主要包含了直接體繪制算法,缺陷的分割及統(tǒng)計(jì)顯示,以及體繪制算法的CUDA加速和三維交互軟件的設(shè)計(jì)與實(shí)現(xiàn)。本文主要的內(nèi)容可分為以下幾個(gè)部分闡述:一、研究了工業(yè)CT重建數(shù)據(jù)的體繪制算法,通過分析工業(yè)CT重建數(shù)據(jù)的特點(diǎn),結(jié)合LIDA算法中過渡段的思想,針對(duì)不同材質(zhì)之間的灰度過渡段,通過調(diào)節(jié)傳遞函數(shù)使得在這些段上呈現(xiàn)波峰的狀態(tài),來實(shí)現(xiàn)工件外部輪廓以及內(nèi)部輪廓同時(shí)顯示的效果。采用簡單的光線投射算法與人工調(diào)節(jié)傳遞函數(shù)相結(jié)合的方式,使得最終在顯示工件的時(shí)候,到達(dá)內(nèi)外兼?zhèn)涞男Ч?。二、研究工業(yè)CT重建數(shù)據(jù)中的缺陷的顯示,對(duì)于缺陷,單純利用過渡段來進(jìn)行調(diào)節(jié)傳遞函數(shù),不能到達(dá)突出的效果,于是通過利用三維CV再結(jié)合區(qū)域生長,將缺陷分割后進(jìn)行統(tǒng)計(jì)篩選以及重新賦值,最后通過調(diào)節(jié)傳遞函數(shù),使得缺陷得以突出顯示的同時(shí)還能保留工件的整體輪廓,從而在顯示結(jié)果中體現(xiàn)出缺陷的相對(duì)大小以及相對(duì)位置,再加上統(tǒng)計(jì)信息,視覺與量化的結(jié)合不失為一種好的輔助手段。三、針對(duì)體繪制算法本身的計(jì)算量問題,采用了CUDA來進(jìn)行加速,通過CUDA來利用GPU的并行處理能力,通過合理安排CUDA的線程分塊,以及利用GPU中的紋理存儲(chǔ)器來進(jìn)一步優(yōu)化加速效果,使得最終的加速可以滿足在普通PC上進(jìn)行流程的人機(jī)交互操作。四、對(duì)上述的研究,最終通過MFC與SDMV模型,以及DLL的模塊化,使得工業(yè)CT重建數(shù)據(jù)體繪制軟件得以實(shí)現(xiàn),通過利用OpenGL的相關(guān)函數(shù),使得交互變得更加簡潔。 后續(xù)研究及展望由于本人的研究能力和研究精力有限,以及問題本身的難度,以至于還存在一些尚待解決的問題。一、體剖切問題。本文只是實(shí)現(xiàn)了一種比較簡單的剖切,通過丟掉數(shù)據(jù)來實(shí)現(xiàn),而真實(shí)的剖切,在剖切面應(yīng)該有更多的處理,已達(dá)到更好的效果。 二、針對(duì)體數(shù)據(jù)過大的問題。本人在研究的過程中遇到數(shù)據(jù)過大而造成顯存無法加載的問題,通過簡單的數(shù)據(jù)分段來實(shí)現(xiàn)過,但是此方法切換比較麻煩,而且影響整體的觀感,所以并未在文中列出,對(duì)此需要一種方法來進(jìn)行處理,在CT重建中,由于精度的需要,重建的數(shù)據(jù)維度可以是很高的,這是一個(gè)實(shí)際應(yīng)用中的問題,具有一定價(jià)值和意義。三、
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1