OpenCVを使用しているコードを楕円に合わせて移植しています。私は後で書き直すかもしれませんが、今はOpenCVルーチンを使う必要があります。 このコードはほんの数行ですが、cvFitEllipse2()のプロファイルが変更されたため、ほとんどすべてを変更しなければなりませんでした。OpenCV効率的な方法でucharの配列からシーケンスを作成する
私の問題は、次のいずれかです。私はコードサンプルの多くを発見していなかったと私はOpenCVのことを見つける私は
で)(cvFitEllipse2を養うことができるものに(UCHARのペア)ポイントの配列を変換します文書化されていない(しかし、私はOpenCVを初めて使っているので、おそらくこの感情は間違っている)。とにかくここ は、私が書いたものである:
/* centers is the input uchar array */
CvBox2D box; //output
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* seq = cvCreateSeq(CV_32FC2, sizeof(CvSeq), sizeof(CvPoint2D32f), storage);
for(int h=0; h<mm; ++h)
{
CvPoint2D32f p;
p.x = (float)centers[h].x;
p.y = (float)centers[h].y;
cvSeqPush(seq, &p);
}
// Fits ellipse to current contour.
box = cvFitEllipse2(seq);
問題:このコードはオリジナルのものに比べて気に遅いです。
- seqに必要なメモリを事前に割り当てる方法はありますか? (CvMemStorageオブジェクト を使用して)
- は(単純そこに優れている? CvSeqよりコンテナ?
- 私は速く何かでcvSeqPushを置き換えることはできますか?あなたの助けを
おかげでたくさん!
あなたは** opencv **に夢中ですね。 – karlphillip
それを愛する!あなたは(void *)&でトリックを知っていましたか? – Sam
ところで、@karlphillip、それはあなたが私と同じくらい中毒であるようです;) – Sam