画像のナンバー プレートを認識するためのアプリを作成しています。正常に動作しますが、コードの画像解析部分を別のスレッドに移動したいと考えています。Qt5.4を使用しています。QtConcurrent::map
ドキュメントを読んだ後、画像を処理する前に、ユーザーがリストに保存されているファイル (名前のみ) をロードするため、これを使用するのが正しいと判断しました。ここにいくつかのコードがあります:
スレッドで実行されるはずの関数の定義:
results detectPlates(const QString &file);
マルチスレッドの使用を試みます。
QFuture<results> r = QtConcurrent::map(files, &MainWindow::detectPlates)
files
QList<QString>
results
それが重要な場合は、私が使用しているライブラリ内で定義された型であると定義されています。
これはエラーでコンパイルされません:
C2440 'initializing' cannot convert from `QFuture<void>` to `QFuture<results>`
関数を次のように変更すると、次の<void>
ようになります。
error c2064: term does not evaluate to a function taking 1 argument.
何が問題ですか?助けていただければ幸いです。