在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > Matlab強(qiáng)大的數(shù)組處理功能如何解決圖像處理解析方

      Matlab強(qiáng)大的數(shù)組處理功能如何解決圖像處理解析方

      作者: 時(shí)間:2012-05-31 來(lái)源:網(wǎng)絡(luò) 收藏

      3 圖像嵌入VC界面[3]

      3.1 基于CWnd類的圖像嵌入

      在Windows操作系統(tǒng)下,所有應(yīng)用程序的窗口都是基于MFC中的CWnd類。所以可以通過(guò)調(diào)用該類或其派生類中的方法實(shí)現(xiàn)圖像嵌入。基本思想:在平臺(tái)下用COM封裝產(chǎn)生圖形窗口的程序;在VC平臺(tái)獲取Figure窗口的句柄,將Figure窗口設(shè)為VC程序的子窗口;(3)將Figure窗口移動(dòng)到指定顯示位置。

      程序?qū)崿F(xiàn)如下:

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

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

      //增加picName參數(shù),VC平臺(tái)下hFig將通過(guò)該名稱獲取生成圖像的句柄

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

      //圖像參數(shù)預(yù)設(shè),保留工具欄。使用提供的工具欄的所有功能是使用該方法的最大優(yōu)點(diǎn)

      percent = 100*eigenvalue /sum(eigenvalue);

      //計(jì)算貢獻(xiàn)率

      pareto(percent); //畫圖

      xlabel(主成分);

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

      (2)封裝打包成名為figure的COM組件,并完成注冊(cè)等相關(guān)操作。因?yàn)樾薷暮蟮膍文件運(yùn)行結(jié)果包含輸出結(jié)果和圖像兩部分,所以下面有關(guān)圖像處理的代碼依然在PCATest控件的響應(yīng)函數(shù)中。

      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;

      //用死循環(huán)確保可以獲取到圖像句柄,注意此處必須使用sleep(),給予系統(tǒng)足夠的響應(yīng)時(shí)間

      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); //設(shè)置Figure窗口樣式。

      //注意SetWindowLong()和SetWindowPos()先后順序,詳見(jiàn)MSDN

      ::SetWindowLong(hFig,GWL_STYLE,lStyle(~WS_CAPTION)(~WS_THICKFRAME))

      ::SetWindowPos(hFig,NULL,0,0,0,0,SWP_NOMOVE|SWP_

      NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE|SWP_

      FRAMECHANGED);CRect PlotRec;

      CWnd *PlotArea = GetDlgItem(IDC_STATIC_FIGURE); //設(shè)置圖像顯示區(qū)域

      PlotArea->GetWindowRect(PlotRec);

      long Width = PlotRec.right - PlotRec.left;

      long Height = PlotRec.bottom - PlotRec.top;

      ::SetParent(hFig,PlotArea->GetSafeHwnd());

      //設(shè)置圖像的父窗口

      ::SetWindowPos(hFig,NULL,0,0,Width,Height,SWP_NOZORDER|SWP_NOACTIVATE);

      該方法的缺點(diǎn)是,在圖像生成時(shí)會(huì)有閃爍現(xiàn)象。而優(yōu)點(diǎn)是前面提到的可以繼續(xù)使用Matlab提供的工具欄。鑒于該缺點(diǎn)影響整體美觀,所以引入下面第二種方法。

      c++相關(guān)文章:c++教程




      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉