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

正文內(nèi)容

雙目立體視覺中的三維重建畢業(yè)設計論文-資料下載頁

2025-06-28 12:39本頁面
  

【正文】 GBA兩種不同的顏色生成模式,并且還可以在條件不足的情況下同時兼顧在硬件等,從而顯示豐富的色彩與友好的界面效果。④ 實物紋理的映射:由于通過繪制基本圖元 我們就可以用OpenGL 來實現(xiàn)物體的建模,因此,軟件規(guī)定有效的色彩渲染只有基本圖元的才可以獲得,其它通過插值的方法來顯示物體的外表顏色與位置并不夠真實,通過圖像進行貼圖來實現(xiàn)紋理影身將的效果,使生成物體看起來更加的生動逼真。⑤ 線段的反走樣:在計算機中我們是通過用一系列的類似正方形的小像素模型來無限逼近的模擬合成線段,當我們對其無限的放大之后,我們會發(fā)現(xiàn)這些線段是呈現(xiàn)出鋸齒的形狀,我們可以通過計算線段對每個像素部分的覆蓋率來最終消除這種不可避免異常走樣問題。⑥ 具有雙緩存動畫:OpenGL 可以在前臺進行顯示當前幀效果的同時,在后臺的緩存中完成后續(xù)幀的計算問題,保證動畫播放效果連續(xù)、流暢并且穩(wěn)定。⑦ 圖像產(chǎn)生的特效問題:為了是三維場景中的真實感增強,OpenGL 為我們提供了霧化與融合等圖像顯示相關的特效,用來增強圖形的最終顯示效果。此外,我們利用 OpenGL 還可以實現(xiàn)對深度的暗示、對運動圖像的模糊處理等一系列特殊的處理效果,從而最終對三維圖形完成消隱算法的應用。 下的 OpenGL 編程由于簡便易用、跨平臺性且高效等一系列特點在 OpenGL 中的運用,目前其已經(jīng)被當做圖形繪制的中三維真實感實現(xiàn)的重要標準之一。在GDI的通用設備上和 Windows 環(huán)境中均可調(diào)用相關的函數(shù)來完成圖形圖像的制作,OpenGL在三維圖像的繪制過程中采用渲染圖像上下文的方式。在我們創(chuàng)建渲染方法之時,我們需要具有一個設備,來時上下文可以毫無隔閡與其相汽配,我們只有在這樣的情況之下,才能在我們進行OpenGL 繪圖時通過渲染與上下文相對應的設備,在相應的顯示設備上來實現(xiàn)上下文中的圖形映射問題。我們在 Windows 下實現(xiàn)對 OpenGL 的編程,需要我們注意以下幾個問題:① 由于窗口的像素格式由設備中上下文的像素格式所決定,并且對應的像素格式一旦被我們確定下來就再也不可能對其作出更改了。② 圖像渲染上下文與程序的線程之間是一一相對的映射對應關系。如果要在同一個線程內(nèi)實現(xiàn)利用不同的設備儀器來進行圖像的繪制工作,我們就必須在改變渲染的上下文的同時,完成對其所對應的相關的設備上下文的更改,但是一個線程對應的渲染上下文是恒定不變的。我們可以先刪除該線程所對應的渲染上下文,然后去完成建立新的渲染上下文的操作。同樣的,一個渲染上下文在運行時也只能同時為一個線程所占用。③ 目前的 OpenGL 版本對于 GDI和OpenGL 同時在同一個設備進行作圖,仍然有一些限制。例如,當我們使用雙緩存的動畫畫圖時就根本無法使用 GDI 來作圖。④ 盡管一個渲染上下文無論何時只能利用其中一個設備的上下文,可是我們卻可以通過多個設備上下文同時在一個窗口內(nèi)進行作圖,這樣我們就可以保證在多個線程調(diào)用時我們可以同時利用多個渲染的上下文來共同執(zhí)行有關 OpenGL 的對應繪圖操作。因此,用 VC 軟件來調(diào)用 OpenGL接口來繪制圖形的操作步驟如下:1) 我們通過填寫“ PIXELFORMATDESCRIPTOR ”的結構來對顯示設備 DC 的位圖屬性進行有關的設置。該結構中包含 iPixelType、dwFlags、dwLayerMask 和cColorBits等有關數(shù)據(jù)項,而這些數(shù)據(jù)項的值對在OpenGL 作圖環(huán)境中相關的物理設備的基本屬性具有決定作用。如我們只有在將dwFlags的數(shù)值值設置為 “PFD_DRAW_TO_WINDOW” 的時候,其中緩存中的內(nèi)容才能夠被繪制到設備或者窗口的表面??墒怯捎谠O備上下文可能對某些位圖格式并不能完全支持,所以在我們使用 DC 之前,我們必須首先通過調(diào)用“ChoosePixelFormat ”來選擇可以匹配的設備上下文所能夠支持的位圖格式或者找到與之最為相近的位圖格式也行,然后我們就可以使用“ SetPixelFormat”來設置相關的設備上下文中對應的位圖格式。2) 在我們調(diào)用各種各樣的OpenGL 函數(shù)來進行作圖時,因為渲染上下文與線程的一一對應關系,所以我們最好不要在 OpenGL 的函數(shù)參數(shù)中標識當前所處線程的渲染上下文有關的句柄。3) 當我們作圖結束后,如果我們要結束設備上下文與渲染上下文的聯(lián)系,我們就必須先設置當前線程,將它的的渲染上下文設置為 NULL (::wglMakeCurrent(NULL, NULL)。),然后我們可以斷開其渲染上下文與線程的聯(lián)系。此時,由于我們尚不能確定 RC 的值是否還是有效狀態(tài),因此,我們要首先先對RC 句柄做有效性判斷(if(m_hrc):wglDeleteContext(m_hrc)。),然后我們就需要根據(jù)判定的結果來刪除(DeleteDC)DC或者釋放(ReleaseDC)DC了。4) 我們可以利用設備上下文來建立渲染上下文,然后保存和建立起它們之間的聯(lián)系。為了在計算機屏幕上渲染和繪制出三維圖形的景觀,我們在OpenGL中進行的主要的繪圖操作的基本步驟為:① 我們可以根據(jù)基本的圖形單元來建立起三維圖形景物的模型,并且我們可以對所建立的三維模型進行相關的數(shù)學描述。② 我們需要把景物模型放置在三維空間中的最合適的位置,然后對相關視點進行設置。③ 在計算機的模型中所有的物體均有色彩,其中我們要根據(jù)應用要求來確定它們對應色彩,同時也要確定當時的紋理粘貼方式與光照條件等約束因素。④ 我們要把對應景物模型的色彩信息與數(shù)學描述轉(zhuǎn)換為可以在計算機屏幕上顯示出來的象素,這個過程的實現(xiàn)也就是我們通常所說的光柵化。在以上這些步驟的執(zhí)行過程中,我們可以利用OpenGL求執(zhí)行其他的一些操作,如自動進行消隱處理等過程。另外,當我們對景物進行光柵化操作之后,但在其被送入幀緩沖器之前,我們還可以根據(jù)實際的需要對景物象素數(shù)據(jù)進行其他操作。 Matlab與VC++的結合方式 MATLAB軟件是一款針對數(shù)值進行計算的交互式軟件,其通過豐富的工具箱和強大的數(shù)據(jù)處理使其編程過程極為簡單。我們可以利用極少的程序代碼就可以實現(xiàn)非常之復雜的功能,從而,以便于我們對應用程序的開發(fā)周期進行大規(guī)模的縮減,從而,相應的提高我們的編程效率??墒怯捎贛ATLAB是一種解釋性的程序語言開發(fā)平臺.他的程序代碼執(zhí)行效率相對比較低便是他的不可抗拒的弱點.但是Visual C++是windows平臺下最為強有力的一套高級編程語言.VC++能夠方便并且快速地開發(fā)出我們需要界面友好,執(zhí)行速度相對于MATLAB顯著提高并且還具有易于維護和升級的一整套軟件系統(tǒng).但是由于Visual C++只給我們提供了一些最為基本的數(shù)學函數(shù)集成庫,如果讓它進行復雜的數(shù)值計算,必定會使軟件開發(fā)周期大大的延長,從而大幅度增加相應軟件的研究開發(fā)成本.可是的強大的圖形繪制功能、輸出圖形功能和圖像處理的相關工具箱,使得MATLAB在圖像處理方面的優(yōu)勢相對于VC++更加明顯。 因此如果才能將兩者結合起來,使之共同開發(fā)程序,充分的發(fā)揮它們各自的相對優(yōu)勢,必然將可使我們大大提高程序的編碼效率與執(zhí)行速度。VC++與MATLAB的結合途徑有如下幾種方式:(1)創(chuàng)建MEX文件;(2) 創(chuàng)建相關的MAT文件下的應用程序;(3)我們通過用“MATC0M(MIDEVA)”來將m2文件轉(zhuǎn)化翻譯成相應 CPP代碼,;(4)我們可以在VC++中同時調(diào)用C/C++與MATIAB數(shù)學函數(shù)庫;(5)用MATLAB來計算相關的引擎函數(shù)庫。本文采用第一種方式。 由于一般形式下的C語言源程序并不可能直接將其編譯為對應MEX文件,我們就只有按照一種約定俗稱的格式來編寫C語言源碼文件,才能能夠?qū)⑵滢D(zhuǎn)化為對應有效的MEX文件。C語言的MEX文件由兩大部分構成:第一部分:入口子程序,主要應用于在被調(diào)用的外部子程序與MATLAB系統(tǒng)之間建立穩(wěn)定可靠通信聯(lián)系。第二部分:計算功能子程序,所有實際需要我們完成的具有一定功能的源代碼均存在于該部分之中。它用入口子程序來實現(xiàn)被調(diào)用。MEX源代碼文件的那兩部分既可以組合在一起共同被調(diào)用,也可以分開調(diào)用, 但是,程序的相關入口程序必須是“mexFunction”函數(shù),該函數(shù)的構成形式如下所示: void mexFunction(mxArray *plhs[],int nlhs, const mxArray *prhs[],int nrhs) 其中plhs [],prhs[]為mxArray型的兩個指針數(shù)組,分別表示輸出輸入變量的地址。nlhs,nrhs為兩個整型的變量,分別表示函數(shù)中輸出輸入的變量的個數(shù); 通過Matlab與VC++的混合編程可以實現(xiàn)圖形的三維重建。使用Matlab中的強大的圖形顯示功能、數(shù)據(jù)處理和矩陣運算等功能進行開發(fā)設計,會相對比較簡便,而由于其運算效率較低,編程效率極高,邊解釋邊執(zhí)行和輸出結果可視化等特點,不適合被用作通用的編程開發(fā)平臺。因此,當我們?yōu)檎w效率考慮是,應該采用具有很高編程效率的通用編程軟件VC++與具有強大數(shù)學運算功能Matlab相結合混合編程的方式,將有大大助于Matlab和VC++的各展所長。 我們編寫以mex_sanweichongjian.C名字的VC++源代碼程序如下: include“mex.h”include“matrix.h” void Reconstruction (double *X,double *C,double *Y,double*XYZY,double *XYZX, double *S,int nC,int mC,int nX,int mX,int nY,int mY, int nXYZX,int mXYZX,int nXYZY, int mXYZY) { 三維重建的梯度投影算法 J void mexFunction(int nrhs,const mxArray prhs[],int nlhs,mxArray *plhs[],) {Yp=mxGetPr(prbs);Xp=inxGetPr(prhs);Cp=mxGetPr(prhs); XYZYp=mxGetPr(prhs);XYZXp=mxGetPr(prhs); mX=mxGetM(prhs); nC=mxGetN(prhs);mC=mxGetM(prhs);nY=mxGetN(prhs); nX=mxGetN(prhs);mY=mxGetM(prhs);nXYZX=mxGetN(prhs) ;mXYZX=mxGetM(prhs);nXYZY=mxGetN(prhs);mXYZY=mxGetM(prhs);Sp=mxGetPr(plhs);plhs=mxCreateDoubleMatrix(mC,nC,mxREAL);Reconstruction (double *X,double *C,double *Y,double*XYZY,double *XYZX, double *S,int nC,int mC,int nX,int mX,int nY,int mY, int nXYZX,int mXYZX,int nXYZY, int mXYZY)chon~ian (Xp,Cp,Yp,XYZYp,XYZXp,Sp,nC,mC,nX,mX,nY ,mY,nxYZX,mXYZX,nXYZY ,mXYZY); } 然后,對該文件mex_ sanweichongjian.c進行最終的編譯與連接 。我們只需要獲得多個點的三維坐標值,然后直接在MATLAB中編寫相應程序就可以完成三維表面圖形的重建工作了。在本章中,以matlab 編程程序為藍本,對三維重建過程進行了重點闡述,其中以程序加注釋的方式進行,而opengl則主要介紹了opengl軟件以及編程方法的一些闡述,并沒有做深入闡述,而對于聯(lián)合編程方面,則重點是可行性的闡述與編程接口的實現(xiàn)。第四章總結和展望本文主要研究了基于雙目立體視覺中的三維重建中的有關問題。首先,我們重點介紹了三維信息重建的課題的相關研究背景知識,對國內(nèi)外近幾十年來的研究情況與成果分別進行了重點介紹,并且我們還重點介紹說明了幾種典型而成熟的三維重建方法。最后我們對三維重建技術的未來發(fā)展做出了前景式的預測。同時我們又指出了三維重建技術在本課題研究中的的重大研究意義。針對數(shù)據(jù)來源的各自的特點,本文主要采取了先實現(xiàn)底層,在考慮高層重組的重建方案,最終開始了三維重建代碼的編程實現(xiàn):1)我們在本文中首先對三維重建的一些基本的理論知識進行了簡單介紹,只有當我們真正了解了有關視圖投影相應的基本知識才能對三維重建整體處理框架形成一定的認識,然后對選擇的數(shù)據(jù)文件做出一些有利我們編寫代碼的處理方案。并且我們又借此機會說明三維形體相關的的各種表達型式,進一步了解了三維重建的一些相關基本原理與處理步驟,最后我們分析了三維重建中自身存在的一些主要問題。2)我們重點介紹了有關三維重建的一些對應預處理過程。通過分析目前存在的結合線掃描方法與視圖分離等方法進行視圖的分離,我們通過將俯視圖、左視圖和主視圖之間的數(shù)據(jù)完全進行分離并且分別保存在不同的數(shù)據(jù)結構體當中。我們經(jīng)過從繪圖坐標系到空間投影坐標之間的轉(zhuǎn)換,建立出繪圖坐標與三維視圖投影坐標間的穩(wěn)定聯(lián)系,從而我們就可以得到三視圖的圖像數(shù)據(jù)在空間投影坐標系下獲得的新坐標。我們在根據(jù)那些前邊介紹三維重建的基本原理,進行特征點的匹配任務,然后我們便可以將在繪圖坐標系下的二維坐標轉(zhuǎn)換為三維坐標系下的三維坐標。3)我們根據(jù)視圖的特征匹配便可以獲得相應的三維點。我們不是直接在三視圖數(shù)據(jù)結構中查找連坐標的接關系。然后,在進行三維線框模型的建立,而是我們通過總結自己在向上的三維重建方法和分析三維實體結構的基礎上,建立生成了最后的三維實體模型,再加上加上OpenGL子山的的渲染功能,便可以加強實體模型的真實感。這種方法中存在著一定的缺陷。我們選擇了使用基于面切割來構造三維實體模型的方法,在這種方法中,在生成實體模型的過程我們就可以可以省去很多不必要的冗余邊的連接,因而我們就可以同時減少了刪
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1