이미지에서 특정 영역을 지정하고 그 영역의 좌표값을 추출하는 데 사용되는 selectroi 에 대해 알아보겠습니다.
1. 기본 세팅
img = cv2.imread('lenna.jpg', cv2.IMREAD_COLOR)
x, y, w, h = cv2.selectROI(windowName='roi', img=img)
여기서 windowName 인자는 윈도우 창 이름을 지정하는 부분입니다.
img 는 어떤 이미지를 사용할지 적용해주는 부분이고요.
아래와 같이 특정 영역을 선택해주면
x, y, w, h 값을 리턴 받게 됩니다.
x, y, w, h 값을 그림으로 도식화하면 아래와 같습니다.
x, y는 사각형 좌상단 좌표, w, h는 사각형의 width, height를 의미합니다.
2. 추가 세팅
1) showCrossshair(default=True)
showCrossshair 는 이미지를 select할때 십자가를 표시할지 말지 결정하는 인자입니다.
2) fromcenter(default=False)
기존 방식과 다르게 사각형을 지정할 때 첫 시작점이 우하단에서부터 시작 되는데요.
익숙한 방식은 아니기에 디폴트로 두고 사용하면 됩니다.
3. x, y, w, h 값을 통해 이미지 crop 하기
원본 이미지를 인덱싱 관점으로 보면 아래와 같이 표현할 수 있습니다.
빨간색 사각형은 y축방향 파란색사각형은 x축방향을 의미합니다.
반면 아래와 같이 작성하면 전체이미지가 아닌 특정 부분을 커버한다는 의미입니다.
이를 코드로 작성하고 크롭한 이미지를 출력해보겠습니다.
output:
'머신러닝,딥러닝 > opencv' 카테고리의 다른 글
[opencv] jupyter notebook에서 영상 실행 방법(with ipywidgets) (0) | 2022.12.19 |
---|---|
[파이썬 opencv] 오픈cv 를 통해 비디오(영상) 출력하는 방법 (0) | 2022.12.02 |
[파이썬 opencv] 오픈 cv에서 yolov3 사용하는 방법 (2) | 2022.10.26 |
[파이썬 opencv] 오픈 cv에서 detection model 실행하는 방법 (0) | 2022.10.21 |
[오픈 cv] 트랙바란? 트랙바 사용방법(for opencv 초보자) (0) | 2022.09.14 |
댓글