2011-11-10 2 views
5

나는 윈도우을 OpenCV의에서 응용 프로그램을 개발하고, 에하고있는 다음 코드는 유효하며,/작동 컴파일 :OpenCV의 표준 : : 벡터 <이력서 :: Point2f> :: 매트

/* Calculate the transformation points */ 
std::vector<cv::Point2f> img1; 
std::vector<cv::Point2f> img2; 
for(int i = 0; i < good_matches.size(); i++) { 
    img1.push_back(keypoints_imageOne[ good_matches[i].queryIdx ].pt); 
    img2.push_back(keypoints_imageTwo[ good_matches[i].trainIdx ].pt); 
} 

/* Generate the homogonous matrix from the transformation points */ 
cv::Mat H = cv::findHomography(img1, img2, CV_RANSAC); 

또는 리눅스 상자 중 하나에 전환 할 때, 나는 (함수 프로토 타입은 std::vector<cv::Point2f> 대신에 cv::Mat을 필요로)

그래서 인수에 대한 함수 프로토 타입이없는 없다는 오류가 내 질문이 있습니다. std::vector <cv::Point2f>에서 cv::Mat으로 전송하려면 어떻게해야합니까? 그렇지 않으면 어떻게해야합니까?

답변

5

당신이 리눅스에서 OpenCV의 이전 버전이있는 것 같다. openCV 함수의 입력으로 벡터를 사용할 가능성은 ver 2.3에 추가 된 것 같습니다.

그럼 행복한 소식!

+1

감사합니다, 단지 업데이트 또한 매트 (img1로)에 캐스팅은 업데이트 전에 오류를 제거했습니다. :디 – krslynx