머신러닝 & 딥러닝/컴퓨터 비전

[OpenCV with Python] - 02. 트랙바(Trackbar) 만들기

by seokii 2021. 9. 4.
728x90
반응형

코드 및 이미지 : https://github.com/Seokii/Study_OpenCV

 

GitHub - Seokii/Study_OpenCV: study about OpenCV

study about OpenCV. Contribute to Seokii/Study_OpenCV development by creating an account on GitHub.

github.com

 

이번에는 트랙 바를 만들고 영상(이미지)의 밝기를 조절하는 구현 해 보겠습니다.

 

cv2.createTrackbar(), cv2.getTrackbarPos()

트랙 바는 일정한 범위에서 특정한 값을 선택할 때 사용하는 스크롤바를 의미합니다.

OpenCV에서는 cv2.createTrackbar() 함수로 트랙 바를 생성할 수 있습니다.

 

cv2.createTrackbar( trackbarname, winname, value, count, onChange ) -> None

  • trackbarname : 윈도우에 생성되는 트랙 바의 이름
  • winname : 트랙 바의 부모 윈도우 이름
  • value : 트랙 바의 위치 반영 값
  • count : 트랙 바의 최댓값 (최솟값은 항상 0)
  • onChange : 트랙 바의 값이 변경될 때 호출되는 콜백 함수

cv2.getTrackbarPos( trackbarname, windowName )

  • trackbarname : 불러올 트랙 바의 이름
  • windowName : 윈도우 이름

 

주피터 노트북 코드 작성

import numpy as np
import cv2

-  필요한 라이브러리를 불러옵니다.

 

def onChange(pos):
    global img
    
    add_value = pos - int(img[0][0])
    img = img + add_value    
    cv2.imshow('TrackBar Test', img)

- 콜백 함수 onChange()를 정의합니다.

 

img = np.zeros((400,600), np.uint8)

- 영상을 생성합니다.

 

cv2.namedWindow('TrackBar Test')
cv2.createTrackbar('brightness', 'TrackBar Test', img[0][0], 255, onChange)

- 트랙 바의 윈도우를 만들고, 트랙 바를 생성해 줍니다.

 

while True:
    cv2.imshow('TrackBar Test',img)
    trackbar1 = cv2.getTrackbarPos('brightness', 'TrackBar Test')
    
    end_key = cv2.waitKey(0)
    if end_key == 27:
        break
        
cv2.destroyAllWindows()

- 실행 코드 / ESC키를 누르면 종료

 

- 결과 사진입니다. 트랙 바의 위치에 따라 생성된 영상의 밝기가 변하는 것을 볼 수 있습니다.

 

 

728x90
반응형

댓글