본문 바로가기

OpenCV/Python

ROI - 3 응용하기2 ( 평균 색 추출하기)

1. 사용 코드

1) Trackbar

 

2) mean 함수

 - mat 행렬 원소의 평균

※ cv.sum = 행렬 원소의 총합

 

 

import cv2 as cv
import numpy as np


def on_trackbar(x):
    pass


cv.namedWindow('test')
cv.createTrackbar('x', 'test', 0, 500, on_trackbar)
cv.createTrackbar('y', 'test', 0, 500, on_trackbar)

cv.setTrackbarPos('x', 'test', 150)
cv.setTrackbarPos('y', 'test', 150)


cap = cv.VideoCapture(0)

while True:

    ret, img = cap.read()

    img_result = img.copy()

    #색의 평균 구할 위치를 trackbar로 조정
    center_x = int(cv.getTrackbarPos('x', 'test'))
    center_y = int(cv.getTrackbarPos('y', 'test'))

    #해당영역을 사각형 처리
    cv.rectangle(img_result, (center_x-50, center_y-50),
                 (center_x+50, center_y+50), (100, 100, 230), 3)

    #선택 영역의 mat 객체를 가져오고 평균내기
    img_roi = img[center_y-50:center_y+50, center_x-50:center_x+50]
    data = cv.mean(img_roi)

    img_mean = np.zeros(img_roi.shape, dtype=np.uint8)
    img_mean[:] = (data[0], data[1], data[2])

    cv.imshow('test', img_result)
    cv.imshow('mean', img_mean)
    cv.imshow('roi', img_roi)

    if cv.waitKey(1) == 27:
        break

'OpenCV > Python' 카테고리의 다른 글

영역 지정 (내가 헷갈려서 정리..)  (0) 2021.06.13
이미지 기하학적 변환  (0) 2021.06.13
ROI -2 응용하기  (0) 2021.06.11
ROI -1 관심영역 설정  (0) 2021.06.11
이미지 비트연산을 활용한 이미지 합성  (0) 2021.06.11