キャプチャした画像からバッグ オブ ワードを抽出する Android アプリを開発しています。このチュートリアルに従って、その目的で opencv ライブラリを使用します。
今、私はC++メソッドを持っています:
void extractTrainingVocabulary(const path& basepath) {...}
私のAndroidアクティビティでそれが必要です
void extractTrainingVocabulary(const path& basepath) {
for (directory_iterator iter = directory_iterator(basepath); iter
!= directory_iterator(); iter++) {
directory_entry entry = *iter;
if (is_directory(entry.path())) {
cout << "Processing directory " << entry.path().string() << endl;
extractTrainingVocabulary(entry.path());
} else {
path entryPath = entry.path();
if (entryPath.extension() == ".jpg") {
cout << "Processing file " << entryPath.string() << endl;
Mat img = imread(entryPath.string());
if (!img.empty()) {
vector<KeyPoint> keypoints;
detector->detect(img, keypoints);
if (keypoints.empty()) {
cerr << "Warning: Could not find key points in image: "
<< entryPath.string() << endl;
} else {
Mat features;
extractor->compute(img, keypoints, features);
bowTrainer.add(features);
}
} else {
cerr << "Warning: Could not read image: "
<< entryPath.string() << endl;
}
}
}
}
}
したがって、android NDK
チュートリアルに従って、このメソッドを次のように宣言する必要があります。 public native void extractTrainingVocabulary () ;
私の問題は、C++ 引数をどのように処理するconst path& basepath
かです。Java メソッドでこの引数を渡す方法
私の質問があなたにとって明確であることを願っています ありがとう