상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - OpenCV를 이용해 최소 경계 상자 Minimum bounding box를 어떻게 그리나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
OpenCV를 사용하여 최소 경계 상자(Minimum Bounding Box)를 그리는 과정은 다음과 같습니다. 최소 경계 상자는 주어진 <a href='https://sangseek.com/sangseeks/점 집합/ko'>점 집합</a>을 포함하는 가장 작은 직사각형을 의미합니다. 아래는 이 작업을 수행하기 위한 기본적인 Python 코드 예시입니다. 필요 라이브러리 설치 OpenCV와 NumPy 라이브러리가 필요한데, 먼저 설치가 되어 있어야 합니다. 다음은 설치 명령어입니다. ```bash pip install opencv-python numpy ``` 최소 경계 상자 그리기 다음 코드는 임의의 점 집합을 생성하고, 이들에 대한 최소 경계 상자를 계산하여 출력하는 예제입니다. ```python import cv2 import numpy as np 임의의 점 집합 생성 (예: 20개의 점) num_points = 20 points = np.random.randint(0, 100, (num_points, 2)).<a href='https://sangseek.com/sangseeks/astype/ko'>astype</a>(np.float32) 점들을 오직 X, Y 좌표로 이루어진 <a href='https://sangseek.com/sangseeks/2D/ko'>2D</a> 배열로 변형 points = points.reshape((-1, 1, 2)) 최소 경계 상자 계산 rect = cv2.minAreaRect(points) 상자의 포인트 좌표를 계산 box = cv2.boxPoints(rect) box = np.int0(box) 빈 이미지를 생성 img = np.zeros((200, 200, 3), dtype=np.uint8) 점 그리기 for p in points: cv2.circle(img, (int(p[0][0]), int(p[0][1])), 2, (0, 255, 0), -1) 최소 경계 상자 그리기 cv2.polylines(img, [box], isClosed=True, color=(255, 0, 0), thickness=2) 결과 이미지 출력 cv2.imshow('Minimum Bounding Box', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 코드 설명 1. 점 생성 : `np.random.randint`를 사용하여 0에서 100 사이의 랜덤한 X, Y 좌표를 가진 20개의 점을 생성합니다. 2. minAreaRect 함수 : `cv2.minAreaRect`를 사용하여 최소 경계 상자를 계산합니다. 이 함수는 회전 가능성이 있는 직사각형을 반환합니다. 3. boxPoints 계산 : `cv2.boxPoints`를 사용하여 최소 경계 상자를 구성하는 네 점의 좌표를 계산합니다. 4. 이미지 생성 : 검은색 배경의 이미지를 생성하고, 점들을 초록색으로 표시합니다. 5. 사각형 그리기 : `cv2.polylines`를 사용하여 최소 경계 상자를 이미지 위에 그립니다. 6. 결과 확인 : OpenCV의 `imshow` 함수를 사용하여 결과 이미지를 보여줍니다. 이렇게 하면 주어진 점 집합에 대해 최소 경계 상자를 그리는 방법을 쉽게 구현할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기