1
一般我使用以下函數來爲3頻帶和單色圖像如何在Mex網關功能中爲3波段或單色圖像分配內存?
/* For 3 band image */
plhs[0] = mxCreateNumericArray(3, dim_array, mxDOUBLE_CLASS, mxREAL);
/*For monochrome image */
plhs[0] = mxCreateDoubleMatrix(r,c,mxREAL);
,將是這種情況時,我們知道行(r)的值,列(c)和dim_array分配內存。如果我們不知道r,c和dim_array的價值怎麼辦?這聽起來很愚蠢......但我想要做的是我想從文件位置讀取圖像。我的Matlab的功能會像
outputImage = imageRead('C:\abc\def\ghi.bmp');
我只是路過字符串作爲輸入我不能讓R,從輸入c和dim_array的價值,但我們必須在主網關輸出圖像分配內存功能。我們怎樣才能爲這個輸出圖像分配內存?
從Matlab,你的函數將如何被調用?例如。 'result = myMexFunction(outputImage)'其中outputImage是imageRead的結果,result是一個與outputImage具有相同尺寸的雙數組? –
或者,您的mex函數的目標是從文件中讀取圖像本身,並返回一個表示圖像的三維數組返回給MATLAB? 'outputImage = myMexFunction(path)';我不完全按照你要求的... –
是的,在matlab中,該函數將被稱爲outputImage = myMexFunction(path)。在我的情況下,mymexfunction是imageRead。你明白了,我想從文件中讀取圖像本身,並返回代表圖像回到MATLAB的三維數組。並且結果應該與輸出圖像的尺寸相同。 –