import cv2
import numpy as np
트랙바 만들기
cv2.createTrackbar(trackbarName, windowName, value, count, onChange)
cv2.createTrackbar('B', 'color_palette', 0, 255, onChange)
이 함수는 트랙바를 지정된 윈도우에 생성하는 함수이다.
1. trackbarName : 트랙바 이름
2. windowName : 윈도우 이름
3. value : 트랙바 시작 값
4. count : 트랙바 끝 값
5. onChange : 트랙바 이벤트 발생시 수행되는 TrackbarCallback 콜백함수
TrackbarCallback :: def onChange(x)
createTrackbar 함수에서 마지막 인자로 들어갈 TrackbarCallback 함수에는 총 2가지 인자가 들어간다.
1. pos : 현재 트랙바의 위치 정보
cv2.getTrackbarPos(trackbarname, winname) → retval
b = cv2.getTrackbarPos('B', 'color_palette') 이 함수는 트랙바의 현재 위치를 반환하는 함수이다. 트랙바의 현재위치를 반환하여 변수에 초기화 해준다.
1. trackbarname : 트랙바 이름
2. winname : 윈도우 이름
트랙바를 설정할 때 중요한 것은 트랙바를 띄울 윈도우 이름과 이미지를 띄울 윈도우 이름이 동일해야 한다는 점, 그리고 트랙바의 위치를 반환하고자 할 때 앞서 설정한 트랙바의 이름이 동일해야 한다는 점이다.
def onChange(x):
pass
def trackbar():
img = np.full((200, 512, 3), 0, np.uint8)
cv2.namedWindow('color_palette')
cv2.createTrackbar('B', 'color_palette', 0, 255, onChange)
cv2.createTrackbar('G', 'color_palette', 0, 255, onChange)
cv2.createTrackbar('R', 'color_palette', 0, 255, onChange)
switch = '0: OFF \n1: ON'
cv2.createTrackbar(switch, 'color_palette', 0, 1, onChange)
while(True):
cv2.imshow('color_palette', img)
k = cv2.waitKey(0) & 0xFF
if k == 27:
break
b = cv2.getTrackbarPos('B', 'color_palette')
g = cv2.getTrackbarPos('G', 'color_palette')
r = cv2.getTrackbarPos('R', 'color_palette')
s = cv2.getTrackbarPos(switch, 'color_palette')
if s == 0:
img[:] = 0
else:
img[:] = [b, g, r]
cv2.destroyAllWindows()
trackbar()
728x90
반응형
'데이터 분석 & 시각화 > OpenCV' 카테고리의 다른 글
[OpenCV Practice 06 - 1] 이미지 연산과 블랜딩 (0) | 2020.08.13 |
---|---|
[OpenCV Practice 05] 이미지 속성과 관심 영역 지정(ROI) (0) | 2020.08.12 |
[OpenCV Programming] 디스크립터(Descriptor) (0) | 2020.08.10 |
[OpenCV Practice 03] OpenCV를 이용한 도형그리기 (0) | 2020.08.10 |
[OpenCV Practice 02] 비디오 reading and writing (0) | 2020.08.08 |
최근댓글