天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

通信工程原理之基于COM的MatIab的參數處理[4]

互聯網技術 責任編輯:turtle48 2012-03-20

摘要:3Matlab圖像嵌入VC界面[3]3.1基于CWnd類的圖像嵌入在Windows操作系統下,所有應用程序的窗口都是基于MFC中的CWnd類。所以可以通過調用該類或其派生類中的方法實現圖像嵌入。基本思想:在Matlab平臺下用COM封裝產生圖形窗口的程序;在VC平臺獲取Figure窗口的句柄,將Figure窗口設為VC程序的子窗口;(3)將Figure窗口移動到指定顯示

 

3 Matlab圖像嵌入VC界面[3]

3.1 基于CWnd類的圖像嵌入

在Windows操作系統下,所有應用程序的窗口都是基于MFC中的CWnd類。所以可以通過調用該類或其派生類中的方法實現圖像嵌入。基本思想:在Matlab平臺下用COM封裝產生圖形窗口的程序;在VC平臺獲取Figure窗口的句柄,將Figure窗口設為VC程序的子窗口;(3)將Figure窗口移動到指定顯示位置。

程序實現如下:

(1)將原pcamat.m進行修改,添加生成圖像的相關代碼

function [eigenvector,eigenvalue] = pcamat(oriData,row,column,picName)

//增加picName參數,VC平臺下hFig將通過該名稱獲取生成圖像的句柄

figure(‘NumberTitle','Off','MenuBar','None','ToolBar','Figure','Name',picName,'Units','Points’);

//圖像參數預設,保留工具欄。使用Matlab提供的工具欄的所有功能是使用該方法的最大優點

percent = 100*eigenvalue /sum(eigenvalue);

//計算貢獻率

pareto(percent);                                              //畫圖

xlabel(‘主成分’);

ylabel(‘方差占的比重(%)’);

(2)封裝打包成名為figure的COM組件,并完成注冊等相關操作。因為修改后的m文件運行結果包含輸出結果和圖像兩部分,所以下面有關圖像處理的代碼依然在PCATest控件的響應函數中。

CString WNDName = “Demo”;         //自定義窗口名稱

Ifigureclass *pic;

VARIANT oriData, row, col, picName,eigVector, eigValue;    VariantInit(&picName);

……

picName.vt = VT_BSTR;         //將自定義窗口名稱賦予

Matlab生成圖像

picName.bstrVal = WNDName.AllocSysString();

HWND hFig;  int timer = 50;

//用死循環確保可以獲取到圖像句柄,注意此處必須使用sleep(),給予系統足夠的響應時間

while(1){

pic->pcamat(2,&eigVector,&eigValue,oriData,row,col,

picName);

Sleep(timer);

hFig = ::FindWindow(NULL,FigName);

if(hFig != NULL){

break;

}

timer += 10;

pic->Release();

}

long lStyle = ::GetWindowLong(hFig,GWL_STYLE);  //設置Figure窗口樣式。

[1]  [2]  [3]  [4]  [5]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

專注在線職業教育25年

信息系統項目管理師

信息系統項目管理師

信息系統項目管理師

!
咨詢在線老師!