Mat访问元素OpenCV2.3

时间:2012-03-12 09:32:22

标签: opencv matrix

我已经阅读了一些关于Mat元素访问的帖子并进行了一些试验,但都失败了。有人能给我一个暗示吗?

Mat vect(1,3, CV_32FC1);     
typedef Vec<float,1> Vec1f;  //**
// access ele. at (1,1)
vect.at<Vec1f>( Point(1,1 )) = 5;  // I used 1 channel so I defined a new element type as a workaround

我改编了这篇文章中的代码 opencv multi channel element access

而且,虽然这行// **可以声明为:

typedef Vec<float> Vec1f;

根据core.hpp中的第582行:Vec(_Tp v0); //&LT!; 1元素向量构造函数

但是,它也不起作用

我对2D矩阵应用了相同的方法,然后就可以了:

Mat warp_mat(2,3, CV_32FC1);
typedef Vec<float,1> Vec1f;

warp_mat.at<Vec1f>( Point(0,0 )) = 1;
warp_mat.at<Vec1f>( Point(1,0 )) = 2;
warp_mat.at<Vec1f>( Point(2,0 )) = 5;
warp_mat.at<Vec1f>( Point(0,1 )) = 4;
warp_mat.at<Vec1f>( Point(1,1 )) = 5;
warp_mat.at<Vec1f>( Point(2,1 )) = 0;

它运作正常!

1 个答案:

答案 0 :(得分:0)

http://aishack.in/tutorials/opencvs-c-interface/

  

Mat a = Mat(4,3,CV_32FC1);

     

float elem_a = a.at(i,j); //访问元素aij,i从0到   rows-1和j从0到cols-1