ファイルに保存されている情報に従っていくつかのオブジェクトを初期化する必要がある画像分析タスク用の小さなライブラリを作成しています。これらのファイルはライブラリに同梱されています。ただし、私のコードでは、これらの外部構成ファイルを参照する適切な方法がわかりません。明らかに、構成ファイルのフルパスを参照することはできません。ただし、相対パスもオプションではないようです。これは、このパスが共有ライブラリの場所、共有ライブラリにリンクされている実行可能ファイルの場所、または作業ディレクトリのいずれに相対的であるかがわからないためです。実行可能ファイルの起動元。現時点では、私のコードは次のようになります。
void
myImageAnalysisFunctionExportedInASharedLibrary(cv::Mat &input, cv::Mat &output)
{
const std::string configurationFile = "resources/analyserConfig.txt";
Analyser a;
a.setConfiguration(configurationFile);
a.analyse(input, output);
}
OpenCVを使用するLinux/Windows環境でC++でコーディングしています。BoostやQtへの参照を必要としないポータブルソリューションが欲しいです。私はCMakeをプロジェクト構築環境として使用しています。