OpenCVドキュメントでは少し失われていますが、CvSeqがCvContextから返されるCvSeqを配列に保存したいと思います。含まれますか?どの部分を保存しておかなければならないのですか?後で私はそれを繰り返し処理し、cvBoundingRectなどを呼び出すことができます。CvSeqを配列に保存する
6
A
答えて
8
CvContourはCvSeqと同じフィールドを持つ構造体です。これはCvRect rectです(include/opencv/cxtypes.hを参照)。だから、CvSeqが本当に沸騰しているのです。
OpenCVソースに付属のopencv.pdfと呼ばれるファイルがあります。
#define CV_SEQUENCE\_FIELDS()
int flags; /* micsellaneous flags */ \
int header_size; /* size of sequence header */ \
struct CvSeq* h_prev; /* previous sequence */ \
struct CvSeq* h_next; /* next sequence */ \
struct CvSeq* v_prev; /* 2nd previous sequence */ \
struct CvSeq* v_next; /* 2nd next sequence */ \
int total; /* total number of elements */ \
int elem_size;/* size of sequence element in bytes */ \
char* block_max;/* maximal bound of the last block */ \
char* ptr; /* current write pointer */ \
int delta_elems; /* how many elements allocated when the sequence grows
(sequence granularity) */ \
CvMemStorage* storage; /* where the seq is stored */ \
CvSeqBlock* free_blocks; /* free blocks list */ \
CvSeqBlock* first; /* pointer to the first sequence block */
typedef struct CvSeq
{
CV_SEQUENCE_FIELDS()
} CvSeq;
は、あなたがこのようなcvFindContoursを呼ぶとしましょう::contours
はcvFindContours
を呼び出した後に最初の輪郭を指します
cvFindContours(img, storage, &contours, sizeof(CvContour), CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));
、それは次のようにCvSeqが定義されていることを述べている(OpenCVの2.1用)138 。範囲の四角形を取得する場合は、単にcvBoundingRect
に渡します。シーケンスの次の輪郭にはcontours->h_next
でアクセスできます。輪郭ツリーの場合、つまり、輪郭が画像の別の輪郭の内側にある場合、現在の輪郭の最初の内側輪郭にはcontours->v_next
でアクセスできます。次の内側の輪郭が存在する場合はcontours->v_next->h_next
となります。
シーケンスを配列に変換する場合は、cvCvtSeqToArray
を使用できます。
また、OpenCV 2.0からC++インターフェイスを使用することもできますが、これは使いやすいと思われます。たとえば、CvSeq** contours
のパラメータをcvFindContours
に設定すると、vector<vector<Point> >& contours
になります。
関連する問題
- 1. ポインタの配列を返す(CvSeqポインタ)
- 2. 列を配列に保存する
- 3. 配列にen $ _POSTを保存する値を保存する
- 4. 保存する配列にカスタムクラスを保存する
- 5. データベースに配列を保存
- 6. _POST値を配列に保存する
- 7. バイト配列をファイルに保存する
- 8. 変数を配列に保存する
- 9. Googleマップマーカーを配列に保存する
- 10. 配列をデータベースに保存する
- 11. ImageIconsをImageIconsの配列に保存し、配列を保存します
- 12. CvSeqに配列を追加する方法と配列を取得する方法
- 13. 保存バイト配列
- 14. 保存配列 - ReactJS
- 15. インデックスで配列をフィルタリングし、別の配列に保存する
- 16. DBに配列を保存します
- 17. データベースに配列を保存するか、別の列にする
- 18. アクティビティ内で配列を保存する
- 19. 配列を保存するcakephp 3 savemany
- 20. セッションで配列を保存する
- 21. 既存のボタンを配列内に保存するには#
- 22. 配列を持つ配列を保存する - Swift
- 23. PHP配列をテキストファイルに保存
- 24. Matplotlib:numpy配列にプロットを保存
- 25. 配列をシングルトンでディスクに保存
- 26. wmiクエリを配列powershellに保存
- 27. 配列値をレルムデータベースに保存
- 28. Rubyで配列に出力を保存
- 29. Maya MELリストアを配列に保存
- 30. numpy配列をtxtに保存