Hey!だから私はOpenCVを使ったマルチスレッドに関する課題に取り組んでいます。私の質問は次のとおりです。すべてのスレッドが同じ画像(Matに保存されている)で動作するようにするにはどうすればよいですか?私はコピーを作ることが遅くなることを知っているので、マルチスレッドは意味をなさないでしょう。また、私は使用するスレッドの数を制御したいと思います。そして、ラムダC++ 11が導入されたのを見ても、スレッドの数を制御する方法はわかりません。Matsを使用したOpenCVマルチスレッド
シリアルで実行している私のコードは次のようになりますので、私は現在、画像に置くべきすべてのピクセルを計算する関数があります。
for(int i=0;r<MyMat.cols;i++){
for (int j=0;j<MyMat.rows;j++){
uchar value = (uchar) MyFunction(i,j);
MyMat.ptr<uchar>(i)[j] = value;
}
}
私は説明しなかった場合、英語は、私の母国語ではありません私は適切に説明を求めてください。どんな助けが良い助けです!
'Mat'を修正すると、元の' Mat'のハードコピーが必要な場合があります。 'Mat'を変更しないスレッドの場合、グローバル変数を使って' Mat'を割り当てることができます。 –
opencv Matについてはそれほど特別なことはありません。 1つのすてきな機能は、各行の最後にパディングを追加することができます。これにより、素敵なメモリアクセス動作を得るのに役立つかもしれません。イメージを "変更"する必要がある場合は、実際の修正ではなく別のマットに結果を保存することができます。 – Micka