본문 바로가기
영상처리 프로그래밍/OpenCV-Python

관심 영역(ROI)

by Glory_Choi 2022. 11. 16.
반응형

ROI란?

영상이나 동영상의 내가 관심 있는 부분을 뜻한다. 영상이나 동영상을 처리 할때 관심영역을 지정하는 것은 매우 중요하다.

관심 영역의 부분만 원하는 처리를 하기 위해서이다.

 

관심 영역(ROI)를 활용하여 국기 그리기

관심 영역을 설정하여 해당 ROI의 픽셀 값을 변경해 주면 국기를 그릴 수 있다. 간단한 예제를 통해서 국기를 그려보겠다.

 

import numpy as np, cv2

img = np.zeros((500, 700, 3), np.uint8)

cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows()
 
 
위 소스를 입력하면 zero 함수를 사용했기 때문에 가로 700 세로 500의 3채널 영상을 얻을 수 있다.
 

이 검은색 영상을 세로를 3등분 하면 독일 국기를 그려볼 수 있다.

 

import numpy as np, cv2

img = np.zeros((500, 700, 3), np.uint8)

colors = [(0, 0, 0), (0, 0 ,255), (0, 255, 255)]

rows, cols = img.shape[:2]
height = rows // 3

for i in range(3):
    h = height * i
    img[h:h+height,:] = colors[i]

cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows()
 

위 소스 코드를 설명하면 검은색, 빨간색, 노란색순으로 리스트를 선언한 후 img.shape를 통해 rows와 cols를 분리한다.

rows//3을 해서 for loop의 i를 변환하며 슬라이스 연산자를 통해 img의 ROI를 설정해서 색을 바꿔준다.

반응형

'영상처리 프로그래밍 > OpenCV-Python' 카테고리의 다른 글

논리(비트) 연산  (0) 2022.11.16
OpenCV 채널 처리 함수  (0) 2022.11.03
OpenCV Python 영상 파일 I/O 처리  (2) 2022.10.06