您的位置:首页 > 运维架构

OpenCV-利用CV_MAT_ELEM宏和CV_MAT_ELEM_PTR宏存取CVMat数组元素

2017-09-30 16:19 399 查看
1:代码如下:

#include "stdafx.h"
#include "highgui.h"
#include "cv.h"
#include "iostream"
using namespace std;
void PrintMat2(CvMat*target, char * name)//第一个参数为cvMat矩阵指针,第二个参数为输出的矩阵的名字
{
printf("%s:\n", name);
for (int i=0; i<target->rows; i++)
{
for (int j=0; j<target->cols;j++)
{
printf("%f\t", cvmGet(target, i,j));
}
printf("\n");
}
}
int main()
{
float vals[]={0.866,-0.500,0.500,0.866};
CvMat rotmat;
//cvInitMatHeader(CvMat矩阵指针,行数,列数,数据类型,一维矩阵指针)
cvInitMatHeader(&rotmat,2,2,CV_32FC1,vals);
PrintMat2(&rotmat,"romat");
//CV_MAT_ELEM(CvMat矩阵,数据类型,行,列);注意行和列都是从0开始,此为取元素。
float element_1_1=CV_MAT_ELEM(rotmat,float,1,1);
cout<<"第二行第而列元素为:"<<element_1_1<<endl;
//*((float *)CV_MAT_ELEM_PTR(CvMat矩阵, 行, 列))
*((float *)CV_MAT_ELEM_PTR(rotmat, 1, 1)) = 2;
PrintMat2(&rotmat,"romat");
return 0;
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: