무효 클릭 IP 추적 중...
머신러닝,딥러닝/opencv

[파이썬 opencv] 오픈 cv에서 selectroi 사용하는 방법

꼬예 2022. 12. 9.

 

이미지에서 특정 영역을 지정하고 그 영역의 좌표값을 추출하는 데 사용되는  selectroi 에 대해 알아보겠습니다.

 

1. 기본 세팅

img = cv2.imread('lenna.jpg', cv2.IMREAD_COLOR)

x, y, w, h = cv2.selectROI(windowName='roi', img=img)

 

여기서  windowName 인자는 윈도우 창 이름을 지정하는 부분입니다.

 

윈도우창 이름

 

 img 는 어떤 이미지를 사용할지 적용해주는 부분이고요.

 

 

아래와 같이 특정 영역을 선택해주면

 

roi 선정

 

x, y, w, h 값을 리턴 받게 됩니다.

 

x, y, w, h 리턴값

 

x, y, w, h 값을 그림으로 도식화하면 아래와 같습니다.

 

x, y, width, height 값

x, y는 사각형 좌상단 좌표, w, h는 사각형의 width, height를 의미합니다.

2. 추가 세팅

1) showCrossshair(default=True)

 

showCrosshair

 

 showCrossshair 는 이미지를 select할때 십자가를 표시할지 말지 결정하는 인자입니다.

 

showCorsshair=False

 

2) fromcenter(default=False)

 

fromcenter = True

 

기존 방식과 다르게 사각형을 지정할 때 첫 시작점이 우하단에서부터 시작 되는데요.

익숙한 방식은 아니기에 디폴트로 두고 사용하면 됩니다.

 

 

3. x, y, w, h 값을 통해 이미지 crop 하기

 

원본 이미지를 인덱싱 관점으로 보면 아래와 같이 표현할 수 있습니다.

빨간색 사각형은 y축방향 파란색사각형은 x축방향을 의미합니다.

 

원본이미지 크기

 

 

반면 아래와 같이 작성하면 전체이미지가 아닌 특정 부분을 커버한다는 의미입니다.

crop이미지

이를 코드로 작성하고 크롭한 이미지를 출력해보겠습니다.

crop코드

 

output:

 

cropped image

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글