2016-06-01 1 views
0

코드에서 계산하는 모든 세그먼트를 비교하는 함수를 호출하고 직선으로 구성된 내보기에 몇 개의 폴리곤이 있는지 알고 싶습니다. (따라서 공통 지점이) 폐쇄 경로를 형성, 또는 대안 내가 직선 세그먼트의 많은 쌍의 각도를 형성하는 방법을 알고 싶습니다 3, 4 이상의 세그먼트로 구성 :HoughLinesP 및 C++과 각도를 이루는 세그먼트 검색

  vector<Vec4i> lines; 
     HoughLinesP(dst, lines, 1, CV_PI/180, 80, 50, 10); 
     for(size_t i = 0; i < lines.size(); i++) 
      { 
      Vec4i l = lines[i]; 
      double x = l[0]-l[2]; 
      double y = l[1]-l[3]; 
      double dist = pow(x,2) + pow(y,2); 
      dist= sqrt(dist); 
      segments.push_back(round(dist)); 
      line(cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0,0,255), 3, CV_AA); 
      } 

을 alternatvely, 단순화하기 위해 노력하고 어떻게 세그먼트 사이의 교차 수를 계산할 수 있습니까?

+0

당신이 Hough를 계산하는 데 사용한 이미지는 도움이 될 것입니다. – Miki

+0

기본적으로 이미지의 기하학적 특징을 감지해야합니다. 예를 들어 이미지 내의 창 수를 계산할 수있게하려면 창을 닫힌 경로를 구성하는 4 개의 세그먼트로 구성된 다각형으로 간주합니다. –

답변

0

정확하게 이해한다면, 주어진 다각형을 알고 싶을 것입니다.

좋은 옵션은 cv::approxPolyDP을 사용하는 것이고, 폴리곤을 표현하는 데 필요한 최소 정점 수를 줄 것이라고 생각합니다. 정점 수에 따라 다각형을 분류 할 수 있습니다.

pyImageSerach 블로그에서 파이썬으로 훌륭한 튜토리얼을 볼 수 있습니다.