2013-05-21 2 views
0

I 다음 코드를 가지고변태 디스크립터 행 형

//newImg is a mat of an image and orderedKeyPoint is the result from Fast 
cv::FREAK extractor; 
cv::Mat queryDescriptors; 
extractor.compute(newImg, orderedKeyPoint, queryDescriptors); 

내가 < ???> (R, 0), R은 임의의 유효한 로우 값 queryDescriptors.at을 사용하여 개별 괴물 기술자 액세스를 시도하고 그러나 나는 그 유형에 대해 확신하지 못합니다. 모든 설명서는 그것이 단지 설명자이지만 Mat 또는 double 또는 다른 것임을 명시합니다. 이것이 최선의 방법인가요?

queryDescriptors.at<cv::Mat>(2,0) = descriptor2; 

:

cv::Mat descriptor2 = queryDescriptors.at<cv::Mat>(2,0); 

내가 그들을 복용하고 이력서 :: 매트, 전직의 행 값에 이르렀 개별 설명에서 queryDescriptors (기술자의 매트)를 재구성 할 수 있도록하고 싶습니다 어떤 도움이나 통찰력이 크게

이삭

답변

1

괴물 기술자가 64 COLS와 numkeypoints 행과 UCHAR 매트입니다 감상 할 수있다. 행 키포인트 자료이다

uchar elm = descriptor.at<uchar>(row,col); 

을하고, COL은 요소 ID이다

그래서, 그 요소에 도착.

0

당신은 모듈 \ \ OpenCV의에보고가있는 경우 \ features2d \ SRC \ freak.cpp 당신이 볼 수

int FREAK::descriptorSize() const 
{ 
    return FREAK_NB_PAIRS/8; // descriptor length in bytes 
} 

int FREAK::descriptorType() const 
{ 
    return CV_8U; 
} 

int FREAK::defaultNorm() const 
{ 
    return NORM_HAMMING; 
} 

} // END NAMESPACE CV 

그래서 UCHAR는 berak 이미 제안 형식이 될 것으로 보인다.

관련 문제