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. バイト配列をファイルに保存する
- 4. ImageIconsをImageIconsの配列に保存し、配列を保存します
- 5. 保存バイト配列
- 6. データベースに配列を保存するか、別の列にする
- 7. CvSeqに配列を追加する方法と配列を取得する方法
- 8. アクティビティ内で配列を保存する
- 9. Matplotlib:numpy配列にプロットを保存
- 10. PHP配列をテキストファイルに保存
- 11. 配列をシングルトンでディスクに保存
- 12. 配列をtxtファイルに保存
- 13. 配列インデックス保存構造
- 14. カスタムオブジェクトのAndroid保存配列
- 15. テーブル列のsqlite3値を配列に保存する方法
- 16. C文字列を2次元配列に保存する
- 17. Rails、ActiveRecord、およびPSQL:配列を列に保存する
- 18. sqlite:配列を保存しますか?
- 19. vb.netのデータベースにバイト配列を保存するには
- 20. ブラウザクッキーにjquery配列を保存するには?
- 21. json配列からデータベースMongoDBにデータを保存するには?
- 22. PHPで配列mysqlのアイテムを保存
- 23. 配列を列としてnp.savetxtで保存する
- 24. 数字の2次元配列を画像に保存する
- 25. キーのポストメタデータを配列に保存する - Wordpress
- 26. Laravel動的入力データ配列をデータベースに保存する
- 27. イメージをPHPのバイト配列に保存する
- 28. ボタンの配列をNSUserDefaultsに保存するswift
- 29. イメージのバイト配列をファイルに保存する
- 30. キャンバスデータを配列に保存する際の問題