- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* OpenCV基本数据类型和数据结构 图像头结构: int dataOrder; 图像数据的存储格式 0 :交叉存取颜色通道 1:分开存取颜色通道 OpenCV函数只支持交叉存取的图像。 int widthStep; 排列的图像行长度,以字节为单位 与矩阵结构中的step成员相似 OpenCV基本数据类型和数据结构 图像头结构: struct _IplROI *roi; ROI:Region Of Interest(感兴趣区域) roi==NULL:整幅图像参与运算 roi!=NULL:ROI区域代替图像参加运算 ROI的操作: cvSetImageROI():设置ROI区域 cvResetImageROI():取消ROI区域 cvGetImageROI():得到ROI区域 OpenCV基本数据类型和数据结构 图像头结构: int origin; 图像像素的起始方式 origin==0:顶-左结构 origin==1:底-左结构(windows风格) char *imageData; 图像的数据区 char *类型而非unsigned char *类型,进行浮点处理时可能要加到unsigned char的转换,否则会导致结果不正常。 OpenCV基本数据类型和数据结构 不确定数组: CvArr:不确定数组 只用作函数的参数 表示可接受多种类型的输入形式 (矩阵等) 运行时通过分析数组头的前4个字节来判断 大多数CvArr*做输出参数的情况下,函数是对CvArr的结构进行写入操作而不是返回指针 OpenCV基本操作 矩形操作: 创建矩阵 CreateMat CvMat* cvCreateMat( int rows, int cols, int type ); Rows 矩阵行数,cols 矩阵列数。 Type 矩阵元素类型。 通常以 CV_比特数(S|U|F)C通道数型式描述, 例如: CV_8UC1 意思是一个8-bit 无符号单通道矩阵, CV_32SC2 意思是一个32-bit 有符号二个通道的矩阵。 函数 cvCreateMat 为新的矩阵分配头和下面的数据,并且返回一个指向新创建的矩阵的指针。矩阵按行存贮。所有的行以4个字节对齐。 删除矩阵 ReleaseMat void cvReleaseMat( CvMat** mat ); 例如:CvMat* M = cvCreateMat( 4, 4, CV_32FC1); cvReleaseMat( M); OpenCV基本操作 矩形操作: 复制矩阵CloneMat:CvMat* cvCloneMat( const CvMat* mat ); 例如: CvMat* M1 = cvCreateMat( 4, 4, CV_32FC1); CvMat* M2; M2 = cvCloneMat(M1); 初始化矩阵 方法1:用cvMat初始化 double a[] = { 1, 2, 3, 4,5, 6, 7, 8,9, 10, 11, 12 }; CvMat Ma = cvMat( 3, 4, CV_64FC1, a); 方法2:用cvCreateMatHeader初始化 CvMat Ma; cvInitMatHeader( Ma, 3, 4, CV_64FC1, a); 初始化单位矩阵 CvMat* M = cvCreateMat( 4, 4, CV_32FC1);cvSetIdentity(M); OpenCV基本操作 矩形操作: 访问矩阵元素 (1)直接访问cvmSet(M, i, j, 2, 0); //Set M(i,j)t = cvmGet(M, i, j); //Get M(i,j) (2)已知对齐方式的直接访问CvMat* M = cvCreateMat( 4, 4, CV_32FC1); int n = M-cols;float *data = M-data.fl;data[i*n+j] = 3.0; //假设32位对齐 (3)未知对齐方式的直接访问CvMat* M = cvCreateMat( 4, 4, CV_32FC1); int step = M-step/sizeof(float);float *data = M-data.fl;(data + i*step)[j] = 3.0; (4)直接访问一个已初始化的矩阵Ma[i*4 + j] = 2.0; OpenCV基本操作 矩形操作: 矩阵间的操作CvMat *Ma, *Mb, *Mc; cvAdd(Ma, Mb, Mc); //Ma + Mb - M
您可能关注的文档
最近下载
- 2025年浙江安防职业技术学院单招职业技能测试题库(名校卷).docx
- 2024年广州中考英语听说考试——“信息询问” 情景训练课件.pptx
- 四年级下册单元作文《热爱生命》.ppt
- 骆驼奶营养价值课件.pptx
- 统编版高中语文教材中杜甫四首诗《登高》《登岳阳楼》《蜀相》《客至》联读.docx
- 附件3-2:12千伏一二次融合环网柜(箱)及配电自动化终端(DTU)标准化设计方案(2021版).pdf VIP
- 第6课 戊戌变法 课件(共34张PPT).pptx
- 2023年上海杉达学院工程管理专业《管理学》科目期末试卷A(有答案).docx VIP
- 分包考核管理办法和考核表.pdf VIP
- 送教上门康复教案.docx
文档评论(0)