OpenCV学习笔记一(CvSeq的使用)
来源:互联网 发布:淘宝头条一篇多少钱 编辑:程序博客网 时间:2024/06/07 05:48
计算视频相邻帧的PCC值,将小于阈值T的PCC值与其对应的帧号保存在GrayPCC中,并从小到大排序。
CvMemStorage *stor=cvCreateMemStorage(0); CvSeq *GrayPCC = cvCreateSeq(CV_32FC2,sizeof(CvSeq),sizeof(Point_<float>),stor); calPCC(filename,GrayPCC);
调用calPCC函数计算,PCC值保存在framePCC数组中。
float threshold = 0.7f; Point_<float> index_PCC; for(int i = 1; i < frameToStop - frameToStart; i++)if(framePCC[i]< threshold){ index_PCC.x = (float)i; index_PCC.y = framePCC[i]; cvSeqPush(PCCSeq,&index_PCC);}
注意保持Point_<float>类型一致。
cvSeqSort( PCCSeq, (CvCmpFunc)cmp_func, 0 /* userdata is not used here */ ); //对seq排序 Point_<float>* SeqPointer; //将排序结果逐一输出 for(int i = 0; i<PCCSeq->total ;i++) { SeqPointer = (Point_<float>*)cvGetSeqElem(PCCSeq, i); cout<<"!!"<<CV_GET_SEQ_ELEM( Point_<float>, PCCSeq, i )->x<<","<<CV_GET_SEQ_ELEM( Point_<float>, PCCSeq, i )->y<<endl; }
static int cmp_func( const void* _a, const void* _b, void* userdata ){ Point_<float>* a = (Point_<float>*)_a; Point_<float>* b = (Point_<float>*)_b; if (a->y<=b->y)return -1; else return 1;}
cvSeqSort 的使用参考 http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=5721
刚开始排序结果没有顺序,检查了半天发现写成了 static float cmp_func 崩溃。
- OpenCV学习笔记一(CvSeq的使用)
- 【OpenCV学习笔记】【函数学习】十四(cvSeq的用法说明(功能很多,按照需求使用))
- opencv CvSeq学习
- opencv中CvSeq的用法
- OpenCV的序列数据结构(CvSeq)
- Opencv中CvSeq的理解
- cvSeq的学习
- opencv学习笔记(一) 使用opencv进行拍照
- OpenCV学习笔记(一) OpenCV的概…
- openCV学习笔记(一)---初始openCV
- OpenCV学习笔记(一)
- opencv学习笔记(一)
- 《学习OpenCV》笔记(一)
- OpenCV学习笔记(一)
- opencv学习笔记(一)
- opencv 学习笔记(一)
- opencv学习笔记(一)
- OpenCV学习笔记(一)
- 怎样把QString转换为char *或者相反?
- SpeedButton使用技巧
- Asterisk拨号方案语法基础
- JavaScript学习笔记1—变量和数据类型
- 修改Oracle最大连接数
- OpenCV学习笔记一(CvSeq的使用)
- springMVC ibatis 整合案例
- Android动画学习笔记
- 游戏编程推荐书籍
- 正在使用的 Google Chrome 扩展插件
- 关于Android4.0及以下系统版本使用PopupWindow.dismiss()时内部的Drawable透明的问题
- 针对ADT升级到17以上出现NoClassDefFoundError问题的解决办法
- poj 2060
- forecast过期问题