原因はわかりませんが、
std::vector(cv::Rect) Rects;
で作った値に、push_backで追加するとすさまじく遅い。毎ループ3 つ追加するだけなのに、
100ms
なんじゃこれ?
検証する時間がもったいないので、取りあえず改造して高速化する。
欲しいのは、
x
y
height
width
だけなので、その分だけの構造体を作って、
typedef struct{
int x, y, width, height;
}Region;
std::vector<Region> Regions;
って感じに変える。
こうすると、1ms以下。
クラスの追加でいろいろと変な処理が入っていると思います。おそらくRectのクラスの中を見るとわかるんでしょうが、時間がもったいないのでしない。
取りあえず、高速化できたからよしとしよう。
0 件のコメント:
コメントを投稿