Я использую библиотеку OpenCV в Objective-C (кросс-компилируется), которая в принципе работает нормально.
К сожалению, при использовании примера, который можно найти в find_obj.cpp , я получаю странные значения для CvSURFParams , который должен быть передан в качестве аргумента Функция cvExtractSURF .
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);
После вызова функции cvSURFParams в ViewController.mm значения параметров:
extended = (int) 1
hessianThreshold = (double) 0
nOctaves = (int) 1082081280
nOctaveLayers = (int) 4
Исправление значений для hessianThreshold , nOctaves , .. in ViewController.mm не помогает, как только я передаю params моей функции cvExtractSURF , при отладке этой функции в surf.cpp :
появляются неправильные значения
extended = (int) 1
upright = (int) 0
hessianThreshold = (double) 500
nOctaves = (int) 4
nOctaveLayers = (int) 0
Может кто-нибудь помочь, пожалуйста?
Заранее спасибо,
- Стефан