现在的位置: 首页 > 综合 > 正文

[转]OpenCV中文手册——cvSeq

2018年08月29日 ⁄ 综合 ⁄ 共 906字 ⁄ 字号 评论关闭
CvSeq
  CvSeq* cvCreateSeq(int seq_flags,int header_size,int
elem_size,CvMemStorage* storage)
  功能:创建一序列
  说明:CvSeq本身就是一个可增长的序列,不是固定的序列
  参数:seq_flags为序列的符号标志。如果序列不会被传递给任何使用特定序列的函数,那么将它设为0,否则从预定义的序列类型中选择一合适的类型。
Header_size为序列头部的大小;必须大于或等于sizeof(CvSeq)。如果制定了类型或它的扩展名,则此类型必须适合基类的头部大小。
Elem_size为元素的大小,以字节计。这个大小必须与序列类型(由seq_flags指定)相一致。例如,对于一个点的序列,元素类型
CV_SEQ_ELTYPE_POINT应当被指定,参数elem_size必须等同于sizeof(CvPoint)。Storage为指向前面定义的内存存储器.
CvSeq*概述
  对于CvSeq这一结构体,又称为可动态增长元素序列(OpenCV_1.0已发生改变,详见cxtypes.h)
Growable sequence of elements。
  CvSeq定义复杂,首先,定义CV_SEQUENCE_FIELDS()。
  #define CV_SEQUENCE_FIELDS() \
  int flags; \
  int header_size; \
  struct CvSeq* h_prev; \
  struct CvSeq* h_next; \
  struct CvSeq* v_prev; \
  struct CvSeq* v_next; \
  int total; \
  int elem_size; \
  char* block_max; \
  char* ptr; \
  int delta_elems; \
  CvMemStorage* storage; \
  CvSeqBlock* free_blocks; \
  CvSeqBlock* first;
  而CvSeq可以表达成:
  typedef struct CvSeq
  {
  CV_SEQUENCE_FIELDS()
  } CvSeq;

抱歉!评论已关闭.