ROI(Region of Interest, 관심 영역)
좌표를 지정하여 선언
import cv2
import numpy as np
src = cv2.imread('./data/lena.jpg', cv2.IMREAD_GRAYSCALE)
dst = np.zeros(src.shape, dtype=src.dtype)
N = 16
height, width = src.shape
h = height // N
w = width // N
for i in range(N):
for j in range(N):
y = i*h
x = j*w
roi = src[y:y+h, x:x+w]
dst[y:y+h, x:x+w] = cv2.mean(roi)[0]
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
selectROI 함수 사용(마우스 드레그)
import cv2
src = cv2.imread('./data/lena.jpg', cv2.IMREAD_GRAYSCALE)
roi = cv2.selectROI(src)
print('roi =', roi)
img = src[roi[1]:roi[1] + roi[3],
roi[0]:roi[0] + roi[2]]
cv2.imshow('Img', img)
cv2.waitKey()
cv2.destroyAllWindows()
selectROIs 함수
- 각 경계 상자를 선택한 후 "Enter"또는 "Space"버튼을 클릭하여 마무리하고 새 경계 상자를 선택
- 경계 상자 선택이 끝나면 "Esc"키를 눌러 ROI 선택을 종료하고 추적을 시작
import cv2
src = cv2.imread('./data/lena.jpg', cv2.IMREAD_GRAYSCALE)
rects = cv2.selectROIs('src', src, False, True)
print('rects =', rects)
for r in rects:
cv2.rectangle(src, (r[0], r[1]), (r[0]+r[2], r[1]+r[3]), 255)
cv2.imshow('src', src)
cv2.waitKey()
cv2.destroyAllWindows()