OpenCV學習筆記(10)CvMat 與 STL vector 的格式轉換與數據讀寫
来源:互联网 发布:那个约会软件免费 编辑:程序博客网 时间:2024/06/10 17:03
http://blog.csdn.net/chenyusiyuan/article/details/5042765
用STL vector來進行數組的數據讀寫非常方便,可以動態調整數組大小,不過在OpenCV裡使用vector時,要保存vector數組的數據,就需要轉換為 CvMat 格式。
比如有一個雙通道數組:
vector points[2];
可以按如下方式來保存數據:
int len = points[0].size();CvMat* pts = cvCreateMat(2,len,CV_32FC2);for (i=0;i<2;i++) for (j=0;j<len;j++) { ((float*)(pts->data.ptr + pts->step*i))[j*2] = points[i][j].x; ((float*)(pts->data.ptr + pts->step*i))[j*2+1] = points[i][j].y; }CvFileStorage* fs = cvOpenFileStorage( "data.xml", 0, CV_STORAGE_WRITE);cvWrite(fs, "points_matrix", pts);cvReleaseFileStorage(&fs);
反之,從本地xml文件中讀入CvMat數組,再轉換為 vector 格式,方式如下:
CvFileStorage* fs = cvOpenFileStorage( "data.xml", 0, CV_STORAGE_READ);CvMat* pts = (CvMat*)cvReadByName(fs, 0, "points_matrix");CvSize pts_size = cvGetSize(pts);points[0].resize(pts_size.width);points[1].resize(pts_size.width);for (i=0;i<2;i++) for (j=0;j<pts_size.width;j++) { points[i][j].x = ((float*)(pts->data.ptr + pts->step*i))[j*2]; points[i][j].y = ((float*)(pts->data.ptr + pts->step*i))[j*2+1]; }cvReleaseFileStorage(&fs);
- OpenCV學習筆記(10)CvMat 與 STL vector 的格式轉換與數據讀寫
- OpenCV学习笔记(10)CvMat 与 STL vector 的格式转换与数据读写
- OpenCV中IplImage与CvMat等格式间的转换
- OPENCV CvMat的使用
- OpenCV CvMat的使用
- OpenCV cvMat的使用
- OpenCV 获取CvMat的数据(用double数组设置CvMat矩阵)
- 【OpenCV图像处理】IplImage转换灰度图像及Cvmat与IplImage格式之间的相互转换
- opencv不同深度CvArr*(CvMat*,IplImage*)类型的显示
- Opencv笔记(1) 数据结构的命名规则(CvMat,...)
- opencv不同深度CvArr*(CvMat*,IplImage*)类型的显示
- 吓人的vector(stl)
- zz:基于 OpenCV 的矩阵运算 (CvMat)
- OpenCV中CvMat或Mat的类型
- 用Socket保存OpenCV的CvMat结构
- OpenCV的CvMat与cvSolve函数
- OpenCV的CvMat与cvSolve函数
- opencv中cvmat的通道学习
- Prime Distance----筛素数
- OpenCV學習筆記(8)VS2008 MFC下使用OpenCV2.0進行簡單圖像處理
- OpenCV學習筆記(9)利用MFC的Picture控件顯示圖像+播放視頻和捕獲攝像頭畫面
- modern c 8.1 编程题
- stm32f1的IO,推挽与开漏
- OpenCV學習筆記(10)CvMat 與 STL vector 的格式轉換與數據讀寫
- OpenCV學習筆記(11)OpenCV+MFC的雙目視覺測距與景深實現 之 問題探討
- OpenCV學習筆記(12)OpenCV調用Matlab函數進行保存視頻的嘗試
- 数据库分页
- OpenCV學習筆記(13)基於OpenCV2.1的MFC雙目視覺平台構建
- Hibernate持久化对象的状态
- OpenCV學習筆記(14)利用Matlab查看雙目視覺景深效果
- OpenCV學習筆記(15)使用OpenGL顯示雙目視覺三維重構效果
- TCP/IP三次握手协议