加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将关键点矢量转换为CvSeq

发布时间:2020-12-16 07:26:18 所属栏目:百科 来源:网络整理
导读:我有一个快速的OpenCV问题.是否可以采用关键点向量并将其转换为CvSeq? 提前致谢. 解决方法 我不知道你为什么会这么想,但它应该是可能的,通过这些功能,你可以做任何你想做的事情: 我应该补充一点,以下是C和C的混合(在OpenCV中也是如此) CreateSeq CvSeq * c
我有一个快速的OpenCV问题.是否可以采用关键点向量并将其转换为CvSeq?

提前致谢.

解决方法

我不知道你为什么会这么想,但它应该是可能的,通过这些功能,你可以做任何你想做的事情:

我应该补充一点,以下是C和C的混合(在OpenCV中也是如此)

CreateSeq
CvSeq * cvCreateSeq(int seqFlags,int headerSize,int elemSize,CvMemStorage * storage)

SeqPush
char * cvSeqPush(CvSeq * seq,void * element = NULL)

这是代码,我还没有尝试过,如果有错误请告诉我,如果有效,我只是试一试…

vector<KeyPoint> myKeypointVector; //Your KeyPoint vector
// Do whatever you want with your vector

CvMemStorage* storage = cvCreateMemStorage(0) 
// By default the flag 0 is 64K 
// but myKeypointVector.size()*(sizeof(KeyPoint)+sizeof(CvSeq)) should work
// it may be more efficient but be careful there may have seg fault 
// (not sure about the size

CvSeq* myKeypointSeq = cvCreateSeq(0,sizeof(CvSeq),sizeof(KeyPoint),storage);
// Create the seq at the location storage

for (size_t i=0; myKeypointVector.size(); i++) {
    int* added = (int*)cvSeqPush(myKeypointSeq,&(myKeypointVector[i]));
    // Should add the KeyPoint in the Seq
}

cvClearMemStorage( storage ); 
cvReleaseMemStorage(&storage);

朱利安,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读