• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    VC與MATLAB混合編程在圖像識別中的應(yīng)用

    2014-03-11 08:07:58陳玉華林來賓洛陽師范學(xué)院信息技術(shù)學(xué)院西門子中國有限公司機械傳動部
    關(guān)鍵詞:函數(shù)庫圖像識別調(diào)用

    陳玉華林來賓/洛陽師范學(xué)院信息技術(shù)學(xué)院;西門子(中國)有限公司機械傳動部

    VC與MATLAB混合編程在圖像識別中的應(yīng)用

    陳玉華1林來賓2/1洛陽師范學(xué)院信息技術(shù)學(xué)院;2西門子(中國)有限公司機械傳動部

    詳細描述了在VC環(huán)境下利用Matlab進行圖像識別、提取的方法。本文以一個成像光斑的識別為例,介紹了Matlab引擎的設(shè)置,從而使VC和Matlab之間進行通信,實現(xiàn)圖像的快速識別。

    混合編程;引擎;matlab

    引言:MATLAB強大的科學(xué)計算與可視化功能,簡單易用的開放式可擴展環(huán)境,使MATLAB在許多學(xué)科領(lǐng)域中成為計算機輔助設(shè)計與分析、算法研究和應(yīng)用開發(fā)的基本工具和首選平臺。但由于其編譯器采用偽編譯的方式,在MATLAB中編寫的程序無法脫離其工作環(huán)境而獨立運行。針對這個問題,Mathworks公司為MATLAB提供了應(yīng)用程序接口,允許MATLAB和其他應(yīng)用程序進行數(shù)據(jù)交換,并且提供了C/C++數(shù)學(xué)和圖形函數(shù)庫,為在其他程序設(shè)計語言中調(diào)用MATLAB的高效算法提供了可能。

    VC++是微軟公司利用C++的底層機理開發(fā)的編譯器,與其他一些C++編譯器相同,都以C++語言為編譯對象。

    一、VC與matlab接口方式的選擇

    VC與MATLAB之間的接口方式有3種:1)在VC中利用MATLABEngine調(diào)用MATLAB函數(shù);2)將MATLAB程序編譯成MEX文件;3)在VC程序中利用MATLAB C++數(shù)學(xué)庫調(diào)用MATLAB函數(shù)。方法1是采用引擎方式,可以在非MATLAB為主的應(yīng)用程序中使用MATLAB功能,該方法不需連接整個MATLAB,只需在VC中嵌入必要的MATLAB Engine,便可以調(diào)用MATLAB中幾乎所有的函數(shù)或命令,無需編譯成C或C++程序;方法2是在以MATLAB為主的應(yīng)用程序中,需要在MATLAB應(yīng)用程序中調(diào)用其他語言的情況下使用,方法3的缺點是不能夠利用MATLAB中豐富的圖形句柄處理函數(shù)。本文采用的是引擎調(diào)用的方法。

    二、VC調(diào)用matlab引擎

    MATLAB引擎是一組函數(shù),通過這組函數(shù),用戶可以在自己的應(yīng)用程序中實現(xiàn)對MATLAB的控制,來完成計算和圖形繪制等任務(wù),這相當(dāng)于把MATLAB當(dāng)成一個計算引擎。在開發(fā)一個專業(yè)的應(yīng)用程序時,可以采用VC開發(fā)用戶界面,而分析部分采用MATLAB編程實現(xiàn),這樣可以利用MATLAB強大的分析功能,縮短程序開發(fā)周期。

    MATLAB引擎的操作是通過啟動一個獨立于應(yīng)用程序的進程來實現(xiàn)的。這樣只需要把少量的引擎通信庫函數(shù)連接到應(yīng)用程序,因為應(yīng)用程序和引擎是兩個獨立的進程,它們之間的通信機制與開發(fā)環(huán)境相關(guān)。MATLAB提供了一個函數(shù)庫來實現(xiàn)對MATLAB的控制,這個函數(shù)庫的主要功能有:啟動和結(jié)束MATLAB進程;從MATLAB發(fā)送的接收數(shù)據(jù);向MATLAB發(fā)送命令。與其他接口方式相比,引擎提供的MATLAB功能支持是最全面的,它可以完成任何計算和繪圖操作,對所有的數(shù)據(jù)結(jié)構(gòu)提供完全支持。

    三、VC調(diào)用matlab引擎設(shè)置

    要在VC中成功編譯MATLAB程序,必須包含引擎頭文件Engine.h并引入MATLAB對應(yīng)的庫文件:libeng.lib,libmat. lib,libmx.lib,libmex.lib。具體的設(shè)置方法如下(以VS2005為例),打開一個工程后:

    1.通過菜單工具/選項,打開設(shè)置屬性頁,進入Directories頁面,在目錄下拉列表框中選擇Include files,添加路徑:“C: matlabexterninclude”(假定matlab安裝在C:matlab目錄)。

    2.選擇Library files,添加路徑:C:matlabexternlibwin32microsoftmsvc60,該步只需設(shè)置一次。

    3.通過菜單工程/設(shè)置,打開工程設(shè)置屬性頁,進入Link頁面,在Object/library modules編輯框中,添加文件名libmx.lib libmat.lib libmex.lib libeng.lib。

    該步每個工程都要單獨設(shè)定,因為每個工程所使用的MATLAB函數(shù)庫可以不一樣,因此,設(shè)置可能不同。上面只設(shè)定了libmx.lib libmat.lib libmex.lib libeng.lib,如果使用了其它的庫函數(shù),則需要添加相應(yīng)的庫文件。

    四、VC調(diào)用MATLAB實現(xiàn)圖像識別

    在VC中編譯代碼時,必須對頭文件“engine.h”進行包含,這個頭文件非常重要?!癳ngine.h”中包含了MATLAB引擎庫中所有函數(shù)及其相關(guān)數(shù)據(jù)類型的定義,缺少了它,將無法使用MATLAB引擎。如果不加入這個頭文件,在程序編譯時就會出現(xiàn)“調(diào)用沒有定義的MATLAB引擎函數(shù)”的錯誤提示。

    接著啟動引擎。定義一個引擎指針ep,該指針首先指向函數(shù)engOpen(),然后開始VC與MATLAB通信。結(jié)合一個光斑圖像提取的例子。

    打開引擎后進行進行通信,在VC環(huán)境下,只需把MATLAB環(huán)境下的。m文件轉(zhuǎn)換為引擎調(diào)用即可。主要代碼如下:

    最后,通信完畢后關(guān)閉matlab引擎即可。

    程序識別的圖像前后對比如下所示:

    圖1 識別前圖像

    圖2 識別后圖像

    五、結(jié)論

    VC和matlab在編程和計算上各有自己的優(yōu)缺點,將它們結(jié)合起來,可以開發(fā)出來數(shù)值計算功能強大、界面友好的程序來。

    [1]蘇金明等,Matlab與外部程序接口[M].,電子工業(yè)出版社,2004。

    [2]袁林等,VC與MATLAB混合編程在圖像處理中的應(yīng)用 [J].微計算機信息,2008第24卷第4-3期

    本文為河南省科技攻關(guān)項目項目編號:102102210479。

    陳玉華1976.11~,女,講師,碩士,研究方向為圖像處理

    猜你喜歡
    函數(shù)庫圖像識別調(diào)用
    用于優(yōu)化雷達信號處理的VSIPL函數(shù)庫
    基于Python的開源GIS應(yīng)用開發(fā)
    Scratch求最值和平均值
    電腦報(2020年34期)2020-09-12 14:03:42
    核電項目物項調(diào)用管理的應(yīng)用研究
    基于Resnet-50的貓狗圖像識別
    電子制作(2019年16期)2019-09-27 09:34:50
    高速公路圖像識別技術(shù)應(yīng)用探討
    基于BB60C的IQ數(shù)據(jù)采集與存儲系統(tǒng)設(shè)計
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    圖像識別在物聯(lián)網(wǎng)上的應(yīng)用
    電子制作(2018年19期)2018-11-14 02:37:04
    圖像識別在水質(zhì)檢測中的應(yīng)用
    電子制作(2018年14期)2018-08-21 01:38:16
    武鸣县| 临澧县| 安阳县| 洪湖市| 沿河| 革吉县| 苍山县| 淳化县| 日土县| 上栗县| 博白县| 两当县| 平原县| 南宫市| 商都县| 岳阳县| 成武县| 甘谷县| 普兰店市| 高唐县| 长治县| 阳信县| 漳浦县| 安塞县| 柳河县| 南部县| 库尔勒市| 东平县| 崇文区| 景宁| 科技| 长子县| 从江县| 开远市| 荔波县| 日照市| 乡宁县| 容城县| 宜兰县| 资源县| 灵山县|