6
如如如 如如如 BCB BCB 如如如如如 如如如如如 Matlab Matlab

如何從 BCB 傳送字串給 Matlab

  • Upload
    aspen

  • View
    86

  • Download
    0

Embed Size (px)

DESCRIPTION

如何從 BCB 傳送字串給 Matlab. 為何要從 BCB 傳字串給 Matlab. 因為想利用 MATLAB 的便利性來實作視覺密碼,會節省很多時間,但 MATLAB 對程式的介面製作 不是很好上手,所以就利用 BCB 的介面。 利用 BCB 的介面來讀取圖片,再把圖片路徑的字串傳給 MATLAB , MATLAB 就可以讀取到該圖片,就可以對圖片做處理。. BCB 傳送字串給 Matlab. 必要的宣告 #include "engine.h“ Engine *eng; mxArray *Impath;. BCB 傳送字串給 Matlab(cont.). - PowerPoint PPT Presentation

Citation preview

Page 1: 如何從 BCB 傳送字串給 Matlab

如何從如何從 BCBBCB 傳送字串給傳送字串給MatlabMatlab

Page 2: 如何從 BCB 傳送字串給 Matlab

為何要從為何要從 BCBBCB 傳字串給傳字串給 MatlabMatlab• 因為想利用 MATLAB 的便利性來實作視覺密碼,會節省很多時間,但 MATLAB 對程式的介面製作 不是很好上手,所以就利用BCB 的介面。

• 利用 BCB 的介面來讀取圖片,再把圖片路徑的字串傳給 MATLAB , MATLAB 就可以讀取到該圖片,就可以對圖片做處理。

Page 3: 如何從 BCB 傳送字串給 Matlab

BCBBCB 傳送字串給傳送字串給 MatlabMatlab

• 必要的宣告• #include "engine.h“

•Engine *eng;

•mxArray *Impath;

Page 4: 如何從 BCB 傳送字串給 Matlab

BCBBCB 傳送字串給傳送字串給 Matlab(cont.)Matlab(cont.)• BCB 中開圖的程式碼:if(OpenPictureDialog1->Execute())

{

AnsiString path;

path=OpenPictureDialog1->FileName;

Image1->Picture->Bitmap->LoadFromFile(path);

Impath=mxCreateString(path.c_str());

engPutVariable(eng,"Impath",Impath);

engEvalString(eng,"Im=imread(Impath);");

}

Page 5: 如何從 BCB 傳送字串給 Matlab

如何將處理過的圖片傳回如何將處理過的圖片傳回 BCBBCB

• 這裡所用的方 法是由 MATLAB 存好圖檔,

再由 BCB 去讀取。要注意的是 MATLAB

存圖檔的指令是” imwrite(A, filename, fmt)” ,

A 是要存的圖, filename 是的檔名 ,fmt 是

格式。

• 例如: imwrite(im, ‘picture.bmp’ , ‘bmp’)

Page 6: 如何從 BCB 傳送字串給 Matlab

如何將處理過的圖片傳回如何將處理過的圖片傳回BCB(cont.)BCB(cont.)

• MATLAB 存圖檔的位置是在 Current Directory ,其預設值是在 C:\MATLAB701\work ,如果要改變位置可在 BCB 中加入engEvalString(eng,“cd C:/‘Documents and Settings/’kAMD/ 桌面 /Matlab_function/;”);

• MATLAB 完成存圖的動作後, BCB 即可讀入圖檔。

• 目前的方法要先設定好存圖的位置,在 BCB的程式中加入該路徑。