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

正文內(nèi)容

matlab與c混合編程的方法分析研究與實現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-16 14:18 本頁面
 

【文章內(nèi)容簡介】 int j_ditong_i1。 for (j_ditong_i1=0。j_ditong_i1()。j_ditong_i1++) { forelem(j_,j_ditong_v1,j_ditong_i1)。 line 17 c:/Matlab6p5/work/_ d = msqrt(mpower((i_n1),)+mpower((j_n2),))。 line 18 c:/Matlab6p5/work/_ h = (+*mpower((d/d0),(*n)))。 line 19 c:/Matlab6p5/work/ //計算Butterworth低通轉(zhuǎn)換函數(shù) line 20 c:/Matlab6p5/work/_ result(i_,j_) = h*g(i_,j_)。 line 21 c:/Matlab6p5/work/ } line 22 c:/Matlab6p5/work/ } line 23 c:/Matlab6p5/work/_ result = ifftshift(result)。 line 24 c:/Matlab6p5/work/_ X2 = ifft2(result)。 line 25 c:/Matlab6p5/work/_ X3 = muint8(real(X2))。 line 26 c:/Matlab6p5/work/_ display(figure())。 line 26 c:/Matlab6p5/work/_ display( imshow((CL(X3))) )。 call_stack_end。 exitM()。}void CMidevaTestView::OnMidevaExe() { WinExec(,SW_SHOW)。 }編譯后運行,在運行界面中分別單擊“CPP調(diào)用”和“EXE調(diào)用”,結(jié)果相同,如圖112。唯一的差別在于“EXE調(diào)用”時會閃出一個DOS窗口。 圖11 原圖像 圖12 低通濾波后圖像盡管沒有選擇有噪聲的圖像,但由上圖仍舊可以看出通過低通濾波器達到了比較明顯的圖像平滑效果(平滑的目的可分為兩類:一類是模糊,目的是在提取較大的目標(biāo)前去除太小的細節(jié)或?qū)⒛繕?biāo)內(nèi)的小間斷連接起來;另一類是消除噪聲)圖像的直方圖顯示與均衡、灰度變換與高通濾波Mat混合編程的實現(xiàn)基本思想與低通濾波的相似在此就不再贅述,具體程序及執(zhí)行結(jié)果見附錄。程序的發(fā)布 混合編程后生成的MFC可執(zhí)行文件可脫離Matlab與vc系統(tǒng)獨立運行,但需要一些必要的dll文件,,、調(diào)用到的由MATCOM直接編譯生成的EXE文件此外還有一種不會用到vc系統(tǒng)的混合編程方法簡單介紹如下:利用Mat可以生成不需要Matlab環(huán)境支持的exe文件,直接利用Mat菜單file/pile to exe/,然后選擇要生成的m文件,便會自動完成m文件的編譯與連接。編譯完后就可以在debug目錄中找到與m文件同名的exe文件。,。四、引擎MATLAB引擎簡介Matlab引擎是Matlab提供的一系列程序的結(jié)合,它允許用戶在自己的應(yīng)用程序中對Matlab進行調(diào)用,將Matlab作為一個操作引擎使用,使其在后臺運行。一般Matlab 引擎采用客戶機/ 服務(wù)器(Client/ Sever) 計算方式,就是一種把應(yīng)用處理負載分布到客戶機和服務(wù)器上的一種計算模式,客戶機和服務(wù)器既可以是存在于同一臺計算機,也可以通過網(wǎng)絡(luò)來實現(xiàn)信息共享。一般情況下,客戶機是運行前端軟件的PC機,并且知道如何與服務(wù)器通信,服務(wù)器與此相對應(yīng),是接收請求信息,并采取相應(yīng)行的機器。由于客戶機和服務(wù)器共同承擔(dān)處理負載使系統(tǒng)總體性能大為提高。在實際應(yīng)用過程中,把VC的C語言或C + + 語言的程序作為前端客戶機程序,它從Matlab 引擎接收數(shù)據(jù)信息,并與引擎?zhèn)鬟f命令的數(shù)據(jù)信息。下面是幾個常用的Matlab API函數(shù):~EngOpen:開啟Matlab引擎;~Engclose:關(guān)閉Matlab引擎;●EngGetArray:從Matlab Engine中獲得一個Matlab矩陣,用于數(shù)據(jù)交換;●EngEvalString:在Maflab引擎中執(zhí)行輸入的Matlab命令;●EngPutVariable:從應(yīng)用程序向Matlab引擎發(fā)送一個Matlab矩陣(mxArray類型);~EngOutputBufer:創(chuàng)建字符緩沖區(qū)以獲取Matlab文本輸出它們的聲明放在engine.h中。  通過Matlab引擎用戶可以完成以下任務(wù):首先,可以將Matlab作為一個功能強大的和可編程的數(shù)學(xué)函數(shù)庫,調(diào)用Matlab中的大量的數(shù)學(xué)計算函數(shù),完成復(fù)雜的計算任務(wù);其次,可以為一個特定的任務(wù)構(gòu)建一個完整的系統(tǒng),前臺的用戶界面用高級語言編寫,后臺的計算任務(wù)由Matlab引擎來完成;最后,用戶不但可以在本地計算機上調(diào)用Matlab引擎,而且還可以通過網(wǎng)絡(luò)調(diào)用其它計算機上的Matlab引擎,這樣可以很好的實現(xiàn)資源的共享和作業(yè)的分工合作。Matlab引擎實現(xiàn)VC和Matlab混合編程的步驟要想在VC集成環(huán)境下利用Matlab引擎實現(xiàn)VC和Matlab的混合編程,一般需要經(jīng)過以下幾個必要的步驟:(1)Visual C++ 編譯環(huán)境的設(shè)置:通過菜單 Tools/ Options,打開Visual C++,進入 Directorie頁面,在 Show Directories for下拉列表中選擇Include Files,添加路徑:C:\Matlab6p5\extern\include(在Matlab的安裝路徑下);再選擇下拉列表中的 Library Files,添加路徑:c:\Matlab6p5\extern\ lib\win32\Microsoft\msvc60(在Matlab的安裝路徑下)。編譯環(huán)境只需設(shè)置一次。(2)添加庫文件: 通過菜單 Projects|settings,進入 Link 頁面,在 Object/Library Modules 框中,添加庫文件名: 、 、。每個新的工程文件都要單獨添加庫文件。(3)在使用 engine 函數(shù)的程序頭文件中包含如下兩個頭文件:include include (4)在應(yīng)用程序中添加調(diào)用Matlab引擎的程序代碼:{ Engine *ep。if(!(ep=engOpen( \0))) //打開Matlab引擎,建立與本地Matlab的連接{fprintf(stderr,\n Can39。t start MATLAB engine\n)。exit(1)。} 以上步驟是對VC與Matlab混合編程的編譯環(huán)境進行設(shè)置,在完成了以上基本步驟后就可以利用Matlab引擎庫函數(shù)engEvalString來調(diào)用Matlab的內(nèi)建函數(shù)了。這里舉一個利用上述Matlab引擎混合編程實現(xiàn)圖像直方圖顯示并均衡的例子。新建一個MFC AppWizard(exe)類型工程,工程名為Dip,將CdipView類的基類改為“CscrollView”以支持視圖滾動,其余各項均采用默認值,創(chuàng)建完畢后按照上述步驟設(shè)置環(huán)境。編程環(huán)境設(shè)置好以后在IDR_DIPTYPE菜單資源的View菜單下添加ID_VIEW_HISTMATLAB菜單,利用ClassWizard在類Cdipdoc添加響應(yīng)函數(shù),代碼如下:void CDipDoc::OnViewHistMatlab() { Engine *ep。//定義MATLAB引擎變量 CString mand。 if(!(ep=engOpen(\0)))//打開MATLAB引擎 { fprintf(stderr,\n MATLAB引擎啟動失敗!\n)。 MessageBox(NULL,MATLAB引擎啟動失敗!,MATLAB,MB_OK |MB_ICONERROR)。 exit(1)。 } CString strPathName=GetPathName()。//實現(xiàn)MATLAB命令 mand=data=imread(39。+strPathName+39。)。//通過MATLAB引擎執(zhí)行MATLAB命令 engEvalString(ep,mand)。 engEvalString(ep,figure(2),subplot(2,2,1),imshow(data),title(39。原圖像39。))。 engEvalString(ep,figure(2),subplot(2,2,2),imhist(data),title(39。原圖像直方圖統(tǒng)計39。))。 engEvalString(ep,figure(2),subplot(2,2,3),k=histeq(data),imshow(k),title(39。均衡后圖像39。))。 engEvalString(ep,figure(2),subplot(2,2,4),imhist(k),title(39。均衡后圖像直方圖統(tǒng)計39。))。 MessageBox(NULL,關(guān)閉引擎,系統(tǒng)將退出應(yīng)用程序!,MATLAB,MB_OK |MB_ICONINFORMATION)。 engClose(ep)。 //關(guān)閉MATLAB引擎,退出MATLAB}編譯整個項目文件,運行生成的EXE文件。通過“File”菜單下的“Open”子菜單,然后在菜單“View”下選擇“直方圖”子菜單,程序?qū)⒄{(diào)用引擎進行原是圖像的現(xiàn)實及圖像的直方圖統(tǒng)計,結(jié)果如圖23圖23 利用引擎混合編程均衡前后圖像及直方圖對比由上圖可以看出均衡化后原圖像中較暗區(qū)域中的一些細節(jié)更清晰,直方圖中灰度值分布更加均勻,整個圖像的對比度明顯增強。圖像的加噪降噪利用引擎混合編程的實現(xiàn)基本思想與低通濾波的相似在此就不再贅述,具體程序及執(zhí)行結(jié)果見附錄。五、性能對比表2是分別利用Matlab和混合編程實現(xiàn)圖像直方圖的顯示與均衡的運行效率的對比。由于整個程序比較簡單,而且用到的循環(huán)處理相當(dāng)少,從而對Matlab函數(shù)的循環(huán)調(diào)用就比較少,所以無法非常明顯的表現(xiàn)出混合編程的優(yōu)勢。相信在處理較復(fù)雜問題時,混合編程的優(yōu)勢將會非常明顯的表現(xiàn)出來。運行環(huán)境: , V C+ + ,WindowsXP.
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1