1

OpenCVを使用して、フレーム内に複数の関心領域があるブログ検出を実行することは可能ですか?

1.xの「C」APIに基づく「LearningOpenCV」の本を読んでいて、IplImageのROI情報が単一のROIとして対応しているため、すべての操作で単一のROIが想定されることに気付きました。複数のROIを処理できないということですか?

複数のROIが必要なのは、処理を減らしたいという願望から生じていますが、関心のあるブロブは、画像領域全体の約30〜40%にしかなく、3〜4つの領域に分割されていることは確かです。画像全体を操作することは、処理能力/時間の観点から60〜70%のオーバーヘッドを意味します。または、ここで非常に基本的なものが欠けていますか?

編集:

SAでこの質問を見つけました。これは、1つのアプローチである可能性があります。正しく理解していれば、フレーム全体にマスクを使用して複数のROIのマスクを解除できますが、IplImageではROI自体を使用することはできません。そうですか?また、これは、ROIの使用の背後にある私の主な目的であった処理要件を減らすという私の目的に役立ちますか?

4

1 に答える 1

1

あなたの場合、一度に1つのROIを設定し、ROIごとにブロブ検出を実行できると思います。結果の座標はサブ画像空間にあることを忘れないでください。元の画像空間に変換し直すことができます。私が個人的に役立つと思ったことが1つあります。通常、ROIはメモリ連続ではありません。元の画像と比較して、ROIのサイズが非常に小さい場合は、ROIを別の画像としてコピーし、その単一の画像でアルゴリズムを実行する方が速い場合があります。例:

for (int i = 0;i < numRects; ++i) {
    cv::Mat subImg = img(rects[i]).clone();
    blobDetection(subImg);
}

お役に立てれば。

于 2012-04-07T04:32:07.067 に答える