2015-01-06 2 views
1

저는 cvMat를 사용하는 오래된 코드를 채택하고 있습니다. 나는 cvMat에서 생성자를 사용 : 나는 A[i][j]을 쓸 때연산자 없음 []이 피연산자와 일치합니다

Mat A(B); // B is a cvMat 

, 나는 오류 no operator [] match these operands를 얻을.

왜? 정보 : B은 단일 채널 플로트 매트릭스입니다 (CSV 파일에서 읽은 MLData 개체).

답변

1

The documentationat 연산자가 구성원에 액세스하는 데 사용되는 것으로 나열합니다.

A.at<int>(i,j); //Or whatever type you are storing. 
1

첫째, 당신은 당신이 3channel, BGR 이미지 (가장 일반적인 경우)가있는 경우, 당신이 좋아하는 접근해야 할 것이다, 그래서 가장 기본적인 opencv tutorials

살펴이 있어야합니다

Vec3b & pixel = A.at<Vec3b>(y,x); // we're in row,col world, here ! 
pixel = Vec3b(17,18,19);   // at() returns a reference, so you can *set* that, too. 

1 채널 (그레이 스케일) 버전은 다음과 같이 보일 것이다 :

uchar & pixel = A.at<uchar>(y,x); 

을 당신이 나 때문에 이미지를 떠 ntion :

float & pixel = A.at<float>(y,x); 

당신이 의지의 유형을 선택할 수 없습니다, 당신은 매트 내부에 무엇을 사용하는 것, 그래서 전) A.type을 (쿼리하려고합니다.

+0

이 기능은 가장 기본적인 opencv 튜토리얼보다 분명했습니다. 감사. – Kiran

관련 문제