matlab與c混合編程的方法研究與實(shí)現(xiàn)畢業(yè)論文_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1Matlab與C混合編程的方法研究與實(shí)現(xiàn)摘要:文章探討了MATLAB與VC的優(yōu)缺點(diǎn),介紹了VC與Matlab混合編程的幾種方法。通過二者的結(jié)合,既有效地利用了MATLAB強(qiáng)大的數(shù)值計(jì)算能力和眾多的函數(shù),大大減少程序設(shè)計(jì)的工作量,又繼承了VC良好的程序界面,證明是一種很好的程序設(shè)計(jì)方法。具體說明了如何應(yīng)用Matlab引擎實(shí)現(xiàn)混合編程以及如何利用MATCOM進(jìn)行MATLAB和VC混合編程,并將兩種方法用于數(shù)字圖像處理。關(guān)鍵詞:MATLAB

2、;VC;MATCOM;引擎;混合編程;圖像處理一、引言1、數(shù)字圖像處理簡介:圖像技術(shù)由高到低分為三個(gè)層次:圖像處理、圖像分析和圖像理解。圖像處理是比較底層的操作,它主要在圖像像素級(jí)上進(jìn)行處理,處理的數(shù)據(jù)量非常大。數(shù)字圖像處理最基本的目的就是改善圖像,主要是按需要進(jìn)行適當(dāng)?shù)淖儞Q突出某些有用的信息,去除或消弱無用的信息,如改變圖像的對(duì)比度,去除噪聲或強(qiáng)調(diào)邊緣的處理等,其基本方法有:直方圖修正、灰度變換、圖像的頻域特性、圖像平滑、圖像銳化等。

3、直方圖是圖像的重要統(tǒng)計(jì)特征,是表示數(shù)字圖像中每一灰度級(jí)與該灰度級(jí)出現(xiàn)的頻率數(shù)間的統(tǒng)計(jì)關(guān)系。直方圖能給出該圖像的大致描述,如灰度范圍、灰度級(jí)的分布、整幅圖像的平均亮度等,但它不能完整地描述一幅圖像。通常用橫坐標(biāo)表示灰度級(jí),縱坐標(biāo)表示頻數(shù)。通常一幅均勻量化的自然圖像由于其灰度直方圖分布集中在較窄的低值灰度區(qū)間,引起圖像的細(xì)節(jié)看不清楚,為使圖像變得清晰,我們可以通過變換使圖像的灰度范圍拉開或使灰度分布在動(dòng)態(tài)范圍內(nèi)趨于均勻化,從而增加反差,使圖

4、像的細(xì)節(jié)清晰,達(dá)到圖像增強(qiáng)的目的?;叶茸儞Q是圖像增強(qiáng)的一種重要手段,它可以使圖像動(dòng)態(tài)范圍加大,使圖像對(duì)比度擴(kuò)展,圖像更加清晰,特征更加明顯。灰度變換可分為線性、分段線性、非線性以及其他的灰度變換。線性灰度變換實(shí)際上使曝光不充分的圖像中黑的部分更黑,白的部分更白,從而提高對(duì)比度。圖像中的邊緣或者線條部分與圖像頻譜中的高頻成分相對(duì)應(yīng),因此采用高通濾波的方法讓高頻分量順利通過,使低頻分量受到抑制,就可以增強(qiáng)高頻的成分,使圖像的邊緣或者線條變得

5、清晰,實(shí)現(xiàn)圖像的銳化。圖像的平滑主要目的是減少圖像噪聲,減少噪聲的方法可以在空間域或者在頻率域處理,即:在空間域中進(jìn)行時(shí),其基本方法是求像素的平均值或者中值;在頻率域中則運(yùn)用低通濾波技術(shù)。低通濾波,圖像的噪聲頻譜一般位于空間頻率較高的區(qū)域,而圖像本身的頻率分量則處于空間頻率較低的區(qū)域內(nèi),因此可以通過低通濾波的方法,使高頻成分受到抑制,而使低頻成分順利通過,從而實(shí)現(xiàn)圖像的平滑。2、混合編程在圖像處理方面的應(yīng)用Matlab是一種應(yīng)用廣泛的編

6、程工具,語法簡單函數(shù)豐富,具有優(yōu)秀的圖形顯示功能及強(qiáng)大的人機(jī)交互能力。Matlab在圖象處理方面更有著明顯的優(yōu)勢:(a)它具有強(qiáng)大的矩陣運(yùn)算功能,在進(jìn)行一些簡單的圖象變換時(shí)可以避免很多煩瑣的計(jì)算;(b)圖形顯示方便,有專門的灰度及彩色圖象顯示函數(shù),甚至在調(diào)試過程中也能隨時(shí)觀察圖形的變化;(c)帶有豐富的圖象處理函數(shù)庫,如wavelettoolbox、imageprocessingtoolbox等。然而由于圖象處理的針對(duì)性很強(qiáng),而被處理的

7、對(duì)象又千變?nèi)f化,不可避免地在用31.Matcom的工作原理Matcom實(shí)際上是eva內(nèi)核的C編譯器,它可以生成CMEX獨(dú)立應(yīng)用程序是eva的核心。本文以下將二者統(tǒng)一寫作Matcom。Matcom包含了一組稱為Matrix的C庫,它是MATHTOOLS公司開發(fā)的一個(gè)矩陣數(shù)學(xué)庫,提供了一個(gè)雙精度Matrix類型——Mm。這個(gè)庫提供了絕大多數(shù)的關(guān)于矩陣類、矩陣操作函數(shù)、數(shù)值計(jì)算函數(shù)、數(shù)學(xué)函數(shù)等的定義,在Matcom中是以lib目錄下的.lib

8、以及windowssystem對(duì)應(yīng)名稱的dll文件提供的。Matcom的另一大部分就是圖形部分,它是用一種非常流行的繪圖OCX控件Teet來實(shí)現(xiàn)的,這種控件對(duì)于一般的繪圖功能都可以實(shí)現(xiàn),但也存在一定缺陷。在Matcom4.5版本中使用的是Teet3.0。繪圖函數(shù)功能主要在lib文件和windowsystemago.dll中定義的。Matcom編譯.m文件是先將.m文件按照與Matcom的Cpp庫的對(duì)應(yīng)關(guān)系,翻譯為CPP源代碼,然后用對(duì)應(yīng)

9、版本的C編譯器將該CPP文件編譯為exe或dll文件,所以,在第一次運(yùn)行時(shí)讓指定CComplier的路徑是必需的,否則將無法編譯。指定好的CComplier的信息寫在MatcombinMatcom.ini文件中。Matcom并不是全能的,對(duì)于大多數(shù)Matlab函數(shù)都可以進(jìn)行CPP實(shí)現(xiàn),但有些由于其功能有限,只能期待以后的版本來不斷補(bǔ)充了??偟膩碚f,Matcom有以下缺欠:(1)對(duì)class數(shù)據(jù)類型部分支持(2)evalfevalclea

10、r等語句不能在C中實(shí)現(xiàn)(如果實(shí)現(xiàn)的話,一個(gè)文本編輯器就可以成為一個(gè)Matlab了)(3)圖形窗口有些不盡如人意,如fill3hide等語句無法實(shí)現(xiàn),surf等語句也無法畫出象Matlab中哪樣精細(xì)的圖像來,特別是色彩比較難看等等2、混合編程的實(shí)現(xiàn)(1)通過外殼函數(shù)調(diào)用Matcom可將m文件轉(zhuǎn)換為exe文件,實(shí)現(xiàn)一種簡單的混合編程方式。具體方法是利用外殼函數(shù)WinExec()或ShellExecute()直接調(diào)用exe文件。本次課題主要運(yùn)

11、用了函數(shù)WinExec(),其原型是:UINTWinExec(LPCSTRlpCmdLineadressofcommlineUINTnCmdShowwindowstylefnewapplication)其中,lpCmdLine為包含命令行參數(shù)的字符串,nCmdShow用來控制窗口狀態(tài),常見的如SW_SHOWSW_SHOWMAXIMIZED和SW_SHOWMINIMIZED等。通過外殼函數(shù)直接調(diào)用exe文件的方法,實(shí)現(xiàn)簡單,且無需鏈接頭文

12、件和庫,但一般在程序中不能接收返回值,靈活性差。(2)運(yùn)用Matrix通過Matcom自動(dòng)地將m文件轉(zhuǎn)換為C、CPP文件,然后將C、CPP代碼拷貝到VisualC工程中,從而實(shí)現(xiàn)混合編程。這種方法的重點(diǎn)在于調(diào)用Matcom的MatrixC庫函數(shù)之前要用語句initM(MATCOMVERSION)初始化類庫調(diào)用并在調(diào)用結(jié)束時(shí)用語句exitM()結(jié)束對(duì)類庫的調(diào)用。在MFC工程文件中一般是在一個(gè)類(如CDipDoc)的構(gòu)造函數(shù)中添加initM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論