OpenCV에서 ROI(Region of Interest) 관심있는 영역을 추출해보자.
1. 간단한 ROI 방법
import cv2
import matplotlib.pylot as plt
image = cv2.imread('./images/cat.jpg')
roi = image[200:350,50:200] # 이미지 파일을 읽어와서 슬라이싱
image[0:150, 0:150] = roi # 이미지 해당 부분을 roi 값으로 채워주기
plt.imshow(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))
plt.show()
2. ROI(Region Of Interest)의 평균값으로 이미지 나타내기
src로 원본 이미지의 속성을 받아온 뒤, src의 크기와 데이터 타입과 같은 0으로 채워진 dst를 생성해준다.
나눌 블록의 크기를 w * h로 설정하고 x, y는 왼쪽 상단부터의 좌표를 나타낸다.
roi = src[y:y + h, x:x + w]는 원본 영상의 ROI를 계산해 그 평균값을 계산한다.
평균값을 타나내는 것으로 N의 값이 커질수록 원본 영상과 비슷해지고 N이 작을수록 원본 영상의 전체 평균 값과 비슷해져 구분하기 어려워진다.
3. 마우스로 ROI 영역 나타내기
이미지가 생성된 뒤 원하는 영역을 마우스로 클릭하게 되면 해당 영역만
선택되어 새로운 이미지가 생성된다.
그 후 생성된 이미지들을 모두 종료하면 해당 영역의 ROI 값이 출력되게 된다.
4.마우스로 다중 ROI 영역 나타내기
다중영역은 cv2.selectROIs('src', src, False, True)
이것을 사용한다.
하나의 박스를 생성한 후, 엔터를 누르고 또 다른 박스를 생성하고
esc를 누르면 선택한 다중 영역이 화면에 표시되고 해당 영역의 ROI값이 출력된다
'Data Science > 2) Open CV' 카테고리의 다른 글
[Python]OpenCV 마우스 이벤트로 ROI 지정 (0) | 2021.12.05 |
---|---|
[Python]OpenCV 캔버스에 도형그리기, 마우스로 도형그리기 (0) | 2021.12.04 |
[Python] OpenCV 카메라 & 영상 읽어오기 (0) | 2021.12.04 |
[Python]Open CV 이미지 처리 자세히 알아보기 (0) | 2021.12.03 |
[Python] Open CV 시작해보기 (0) | 2021.12.02 |