2013-07-24 3 views
3

이미지에서 사각형을 찾는 OpenCV 내장 예제에서 모든 윤곽선이 벡터에 저장됩니다.
수학적 벡터 연산과 관련하여 이러한 점을 처리하는 방법. 내가 Vec2d로 변환했다 그 윤곽의 점 사이의 간단한 versors을 계산하려면, 내가 사용할 수있는 '규범'기능 :OpenCV에서 벡터 (수학적)를 처리하는 방법

Vec2d PointTOVec2d(Point q){ 
return Vec2d(q.x,q.y); 
} 

void main(){ 
vector<cv::Point> square=SomeFunctionCalculatingSquarePoints(); 
Vec2d v1; 
v1=PointTOVec2d(square[1]-square[0]); 
v1=v1/norm(v1); 
} 

그러나 심지어이 방법을 나는 방법을 찾을 수없는 것 (을 통해 명시 적 함수)를 사용하여 Vec2d의 간단한 마력을 계산합니다.

OpenCV에서 포인트를 수학적 벡터로 처리하는 방법, 모든 것을 직접 작성해야합니까? 아니면 처리하기 위해 몇 가지 중요한 OpenCV 수학 기능/방법/클래스를 놓쳤습니까?

+0

http://stackoverflow.com/questions/362928/open-source-c-library-for-vector-mathematics – William

답변

1

cv::norm()은 이미 cv::Point에서 작동 할 수 있습니다.

cv::Point pt(3,4); 
double n1 = cv::norm(pt); // Result is 5 

cv::Vec2d v(3,4); 
double n2 = cv::norm(v); // Result is 5 
+0

음 : 당신이하지 않으려면 cv::Vec2d로 변환 할 필요가 없습니다 - 고맙습니다. – user2614242

+0

죄송합니다 - "accept"기능이나 메시지 표시기를 몰랐습니다. 물론 받아 들일 수 있습니다 :) – user2614242

관련 문제