Objective-C (クロスコンパイル) で OpenCV ライブラリを使用していますが、これは基本的に正常に動作します。
残念ながら、 find_obj.cpp にある例を使用すると、 cvExtractSURF関数に引数として渡す必要があるCvSURFParamsの奇妙な値が得られます。
features2d.hpp (openCV の一部):
typedef struct CvSURFParams
{
int extended;
double hessianThreshold;
int nOctaves;
int nOctaveLayers;
} CvSURFParams;
surf.cpp (openCV の一部):
CvSURFParams cvSURFParams(double threshold, int extended)
{
CvSURFParams params;
params.hessianThreshold = threshold;
params.extended = extended;
params.upright = 0;
params.nOctaves = 4;
params.nOctaveLayers = 2;
return params;
}
ViewController.mm (私のメイン ビュー コントローラー):
CvSURFParams params = cvSURFParams(500, 1);
ViewController.mmで cvSURFParams 関数を呼び出した後、params の値は次のようになります。
extended = (int) 1
hessianThreshold = (double) 0
nOctaves = (int) 1082081280
nOctaveLayers = (int) 4
hessianThreshold 、nOctaves、..の値をViewController.mmで修正しても役に立ちません。params を cvExtractSURF 関数に渡すとすぐに、この関数をsurf.cpp でデバッグするときに間違った値が表示されます。
extended = (int) 1
upright = (int) 0
hessianThreshold = (double) 500
nOctaves = (int) 4
nOctaveLayers = (int) 0
誰でも助けてもらえますか?
前もって感謝します、
-- ステファン