2012-03-12 2 views
0

매트 요소 액세스에 대한 몇 가지 게시물을 읽었으며 약간의 시련이 있었지만 모두 실패했습니다. 누군가 나에게 힌트를 줄 수 있을까요? core.hpp 라인 (582)에 따라매트 액세스 요소 OpenCV2.3

typedef Vec<float> Vec1f; 

: 텟 라인 // **과 같이 선언 할 수 있지만

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 

나는, I를이 게시물 opencv multi channel element access

의 코드를 적응 : Vec (_Tp v0); //! < 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; 

는 OK 작품!

답변

0

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

매트 매트 A = (4,3, CV_32FC1);

float elem_a = a.at (i, j); // 0에서 rows-1까지 0부터 cols-1까지 i를 사용하여 요소 aij에 액세스

+0

Plan9ass에 감사드립니다. 그게 내 버그 야 & 나는 이미 그것을 고쳤다! –

+0

실제로, 'at'함수를 시도했지만이 방법으로는 작동하지 않습니다. 작동하는 것 : frame.at (30,10). 유형은 여기에 uchar입니다. 앞에 붙여야합니다. –

+0

또 다른 문제는 다음과 같습니다. 그 행렬은 3 채널 행렬을 가진 실제 이미지입니다. (i, j) 요소 i, j에 대한 액세스 권한을 부여하지만 채널은 무엇입니까 ?? 원하는 각 채널에 어떻게 액세스 할 수 있습니까 ?? –