SLICスーパーピクセルセグメンテーションMATLABコード実行の詳細



Some Details Slic Superpixel Segmentation Matlab Code Execution



コードURL:http://ivrl.epfl.ch/research/superpixels#SLICO

SLICスーパーピクセルセグメンテーション用のMATLABプログラムをダウンロードしました。



「」 MexファイルとMATLABデモスクリプト 「」

ダウンロードして解凍した後のメインプログラムは「SLICdemo.m」で、C言語プログラム「slicmex.c」を呼び出します。



したがって、プログラムを実行するときは、最初にMATLABを介してC / C ++関数をMEX関数にコンパイルすると、MATLABで呼び出すことができます。方法は次のとおりです。

MATLABのコマンドウィンドウの下に入力します。

>> mex silcmex.c



コンパイラを選択するように通知します。

コンパイラを選択します。
[1] d: ruanjiananzhuang VS2010UltimTrialCHSにあるMicrosoftVisual C ++ 2010

[0]なし

コンパイラ:1

1を入力し、Enterキーを押します。このとき、警告とエラーが報告されます。警告は関係ありません。主な解決策は、エラーを解決することです。

slicmex.c(387):エラーC2275:「mwSize」:このタイプを式として使用することは違法です

……。

このエラーは最初に表示される最大のエラーであり、最初に解決します。

ファイル 'slicmex.c'をテキストエディタで開き、(387)行を処理します。

mwSize numdims = mxGetNumberOfDimensions(prhs [0])

改革は、numdimsの宣言と定義を分解することです。

mwSize numdims

numdims = mxGetNumberOfDimensions(prhs [0])

その宣言を、行(351)で定義されているmexFunction関数の下にある変数宣言の大きなリストと一緒に配置します。以下のスクリーンショット:


ファイルを保存してから、MATLABコマンドウィンドウに戻り、cプログラムを再コンパイルします。

>> mex slicmex.c

次に、プログラムを実行します。
>> SLICdemo


インターネット上の誰かが原則を与えました、私はテキストをコピーしました:

アドレス:http://www.cppblog.com/colorful/archive/2015/02/05/209744.aspx

エラーC2275: 'XXX':このタイプを式として使用することは違法です

C ++コードをCに移植すると、奇妙なエラーが頻繁に発生します。
エラーC2275: 'XXX':このタイプを式として使用することは違法です
その表現は違法です。このエラーは、変数の宣言をファンクションブロックの先頭に配置する必要があるCコンパイラが原因で発生し、C ++にはそのような要件はありません。
解決策は、変数の宣言を変数のサバイバルブロックの先頭に置くことです。