本文转自http://blog.csdn.net/wqvbjhc/article/details/5497017。
openCV中 cvSeq的用法说明
函数原型 | 说明 |
CvSeq* cvCreateSeq(int seq_flags,int header_size,int elem_size,CvMemStorage* storage) | 功能:创建一序列 参数:seq_flags为序列的符号标志。如果序列不会被传递给任何使用特定序列的函数,那么将它设为0,否则从预定义的序列类型中选择一合适的类型。Header_size为序列头部的大小;必须大于或等于sizeof(CvSeq)。如果制定了类型或它的扩展名,则此类型必须适合基类的头部大小。Elem_size为元素的大小,以字节计。这个大小必须与序列类型(由seq_flags指定)相一致。例如,对于一个点的序列,元素类型CV_SEQ_ELTYPE_POINT应当被指定,参数elem_size必须等同于sizeof(CvPoint)。Storage为指向前面定义的内存存储器 |
CvSeq* cvCloneSeq(const CvSeq* seq,CvMemStorage* storage=NULL) | 功能:创建序列的一份拷贝 |
Void cvSeqInvert(CvSeq* seq) | 功能:将序列中的元素进行逆序操作 |
Void cvSeqSort(CvSeq* seq,CvCmpFunc func,void *userdata=NULL) | 功能:使用特定的比较函数对序列中的元素进行排序 |
Char* cvSeqSearch(CvSeq* seq,const void* elem,CvCmpFunc func,int is_sorted,int *elem_idx,void *userdata=NULL) | 功能:查询序列中的元素 |
Void cvClearSeq(CvSeq* seq); | 功能:清空序列 |
Char* cvSeqPush(CvSeq* seq,void* element=NULL) | 功能:添加元素到序列的尾部 |
void cvSeqPop(CvSeq* seq,void* element=NULL) | 功能:删除序列尾部元素 |
Char* cvSeqPushFront(CvSeq* seq,void* element=NULL) | 功能:在序列头部添加元素 |
Void cvSeqPopFront(CvSeq* seq,void* element=NULL) | 功能:删除在序列的头部的元素 |
Void cvSeqPushMulti(CvSeq* seq,void* elements,int count,int in_front=0); | 功能:添加多个元素到序列尾部或头部 |
Void cvSeqPopMulti(CvSeq* seq,void* elements,int count,int in_front=0) | 功能:删除多个序列头部或尾部元素 |
Char* cvSeqInsert(CvSeq* seq,int before_index,void* element=NULL) | 功能:在序列中的指定位置添加元素 |
Void cvSeqRemove(CvSeq* seq,int index) | 功能:删除序列中的指定位置的元素 |
Char* cvGetSeqElem(const CvSeq* seq,int index) | 功能:返回索引所指定的元素指针 |
Int cvSeqElemIdx(const CvSeq* seq,const void* element,CvSeqBlock** block=NULL) | 功能:返回序列中元素的索引 |
Void cvStartAppendToSeq(CvSeq* seq,CvSeqWriter* writer) | 功能:将数据写入序列中,并初始化该过程 |
Void cvStartWriteSeq(int seq_flags,int header_size,int elem_size,CvMemStorage* storage,CvSeqWriter* writer) | 功能:创建新序列,并初始化写入部分 |
CvSeq* cvEndWriteSeq(CvSeqWriter* writer) | 功能:完成写入操作 |
Void cvStartReadSeq(const CvSeq* seq,CvSeqReader* reader,int reverse=0) | 功能:初始化序列中的读取过程 |