-
(OpenCV) Contours관련 함수 사용 시 주의사항IT 지식 창고 2020. 10. 19. 18:05
OpenCV의 contours관련 함수를 활용하기 위해 했던 삽질입니다.
contours가 input 데이터로 들어가는 경우에 처리해야할 사항이 있습니다.
contours의 기본적인 형태는
[[[1, 2], [2, 4], [3, 5]],
[[4, 5], [10, 3], [7, 3]]]
으로 멀티 폴리곤으로 3차원 형태의 array입니다.
1. findcontours로 contours를 찾은 경우
이 상황에서는 따른 처리를 할 필요 없이 input data로 contours를 넣으면 됩니다.
2. 직접 polygon 좌표를 입력할 경우
이 경우에 멀티 폴리곤이 아닌 단일 폴리곤 일경우에도 3차원 형태로 만들어줘야 합니다.
polygon의 경우는 2차원의 형태로만 충분하지만, OpenCV에서는 3차원의 형태로 contours를 인식하기 때문에 이점 유의해야합니다.
2-1. 2차원 array에 []를 씌움
contour_array = [[1,2],[2,3], [4,5]] contours = [contour_array] or contours = list(contour_array)
2-2. reshape으로 변경
contour_array = np.array([[1,2],[2,3], [4,5]]) contours = contour_array.reshape(-1, 1, 2) [[[1,2]], [[2,3]], [[4,5]]]
'IT 지식 창고' 카테고리의 다른 글
(flask) windows에서 flask와 apache 연동 (0) 2020.10.19 (Numpy) array출력 시 생략 하지 않고 출력할 때 (0) 2020.10.19 (Book) 실무에 적용되는 딥러닝 기술 예제를 보기 위한 책 (0) 2020.10.14 (selenium) Internet explorer 11에서 작동이 잘 안될 때 (창만 켜지는 경우) (0) 2020.10.12 (keras) model과 weight 종속성 (0) 2020.09.22 댓글