4

画像を縮小して顔検出アルゴリズムを最適化したいと考えています。最善の方法は何ですか?cvPyrDown (ある例で見たように、これまでのところ悪い結果が得られたように)、cvResize または別の関数を使用する必要がありますか?

4

3 に答える 3

6

画像を拡大縮小したいだけの場合は、cvResizeAdrianPopoviciが提案したように使用してください。

cvPyrDownガウスぼかしを適用して画像を滑らかにし、デフォルトでは、列と行を拒否することで画像を2分の1にダウンサンプリングします。この平滑化はパフォーマンスを低下させる可能性があります(検出アルゴリズムにどのように影響するかはわかりません)。パフォーマンスが低下するもう1つの可能性は、行と列を削除するだけで不連続になる可能性があります。cvResize一方、顔検出をより適切に機能させることにより、スムーズな補間(最近傍以外のもので補間したと仮定)が可能になります。使用されている正確なカーネルcvPyrDownの詳細については、のドキュメントを参照してください。

于 2011-12-07T14:26:10.050 に答える
3

画像を縮小するには、次を使用します。

void cvResize(const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR )

画像を縮小するには、一般に CV_INTER_AREA 補間を使用すると見栄えがよくなりますが、画像を拡大するには、一般に CV_INTER_CUBIC (遅い) または CV_INTER_LINEAR (高速ですが問題なく表示されます) を使用すると見栄えがよくなります。

しかし、これまで cvPyrDown を使用したことがないので、それがパフォーマンスであるかどうかはわかりません...

于 2011-12-07T09:38:15.190 に答える
0

顔検出アルゴリズムが haar 機能を使用している場合、再スケーリングはまったく必要ありません。積分画像を使用して、検出器をスケーリングすることで必要なスケールにアクセスするだけです。また : cvResize は の新しいバージョンでOpenCV (2.X)は、OpenCV 1.X

于 2012-04-24T07:39:22.013 に答える