2014-10-16 5 views
1

나는 이렇게 조작하고 싶습니다만, 벡터 매트의 값을 가져 와서 변경할 수 없습니다. 테이블은 1 차원 배열입니다. 감사.Opencv : "매트 벡터"값을 얻고 변경하는 방법

vector<Mat> orjchannel; 
vector<Mat> refchannel; 

// There are some functions here 

for (int i = 0; i < 512; i++){ 
    for (int j = 0; j < 512; j++){ 
     double value = refchannel[i][j]; // This part does not work 
     orjchannel[i][j] = tables[value]; 
+0

연산자 []는 정수 1을 사용합니다. '[i] [j]'라는 뜻 이었습니까? –

+0

네, 그런 가치에 도달하는 방법을 모르겠다. 나는 무엇을 의미하는지와 같은 것을 썼다. – s900n

+0

내가 편집 한 방식으로 잘 작동하지 않는다. – s900n

답변

3

OpenCV를 사용하면 일반적으로 at<DATATYPE>(r,c) 명령을 사용하여 매트 값에 액세스합니다. 예를 들어 ...

// Mat constructor 
Mat data(4, 1, CV_64FC1); 

// Set Value 
data.at<double>(0,0) = 4; 

// Get Value 
double value = data.at<double>(0,0);  
+0

이 답변을 추가로 늘리려면 다음을 수행하십시오. 당신이 사용해야합니다; refchannel.at (i) .at (j, k). 첫 번째 'at'는 벡터의 Mat 객체 중 하나를 선택하고 두 번째는 지정된 유형의 매트에서 지정된 값을 제공합니다. – Nallath