python opencv minareaRect 최소 외 접 직사각형 생 성 방법

python opencv 를 사용 하여 점 집합 cnct 의 최소 외 접 사각형 을 되 돌려 줍 니 다.사용 하 는 함 수 는 cv2.minareaRect(cnct)이 고 cnct 는 점 집합 배열 이나 벡터(안에 점 이 저 장 된 좌표)이 며 이 점 집합 은 개 수 를 정 하지 않 습 니 다.
예 를 들 어 임의의 사각형(임의의 다각형 모두 가능)의 최소 외 접 사각형 을 그 려 서 점 집합 cnct 는 이 사각형 의 정점 좌표 4 개 를 저장 합 니 다.

cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]) #    array     
rect = cv2.minAreaRect(cnt) #          (  (x,y), ( , ),     )
box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x          4     
box = np.int0(box)
함수 cv2.minareaRect()는 Box2D 구조 rect:(최소 외 접 사각형 의 중심(x,y),(너비,높이),회전 각도)를 되 돌려 줍 니 다.그러나 이 사각형 을 그 리 려 면 사각형 의 4 개의 정점 좌표 box 가 필요 합 니 다.함수 cv2.cv.BoxPoints()를 통 해 얻 은 반환 형식[x0,y0],[x1,y1],[x2,y2],[x3,y3]이 필요 합 니 다.얻 은 최소 외 접 사각형 의 4 개의 정점 순서,중심 좌표,너비,높이,회전 각도(도수 형식 이지 라디안 이 아 닌)의 대응 관 계 는 다음 과 같다.

주의:
회전 각도θ수평 축(x 축)이 시계 반대 방향 으로 회전 하고 부 딪 힌 사각형 의 첫 번 째 변 의 협각 이다.그리고 이 변 의 길 이 는 width 이 고 다른 변 의 길 이 는 height 입 니 다.즉,여기 서 width 와 height 는 장단 점 에 따라 정 의 된 것 이 아니다4.567917.opencv 에서 좌표계 원점 은 왼쪽 상단 에 있 고 x 축 에 비해 시계 반대 방향 으로 회전 하 는 각 도 는 마이너스 이 며 시계 방향 으로 회전 하 는 각 도 는 플러스 이다.그래서θ8712°(-90 도,0).
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기