소스 뷰어
# 17_set_camera_atty.py

import cv2

capture = cv2.VideoCapture( 0 )   # 카메라 캡쳐

if capture.isOpened() is None: raise Exception("카메라 연결 안됨")

capture.set(cv2.CAP_PROP_SETTINGS, 1)           # 카메라 속성 설정 가능
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 400)      # 카메라 프레임 너비
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 300)     # 카메라 프레임 높이
capture.set(cv2.CAP_PROP_AUTOFOCUS, 0)          # 오토포커싱 중지
capture.set(cv2.CAP_PROP_BRIGHTNESS, 100)       # 프레임 밝기 초기화

# 그림자 문자 출력
def put_string(frame, text, pt, value=None, color=(120, 200, 90)) :
    text = str(text) + str(value)
    shade = (pt[0] + 2, pt[1] + 2)
    font = cv2.FONT_HERSHEY_SIMPLEX
    cv2.putText(frame, text, shade, font, 0.7, (0, 0, 0), 2) # 그림자 효과
    cv2.putText(frame, text, pt   , font, 0.7, color, 2) # 작성 문자
pass

# 줌 트랙바 콜백 함수
def zoom_bar(value):
    print( "zoom bar 1 = ", value, flush=1 )
    capture.set(cv2.CAP_PROP_ZOOM, value) # 줌 설정
    print( "zoom bar 2 = ", capture.get(cv2.CAP_PROP_ZOOM), flush=1 )
pass

# 포커스 트랙바 콜백 함수
def focus_bar(value):
    print( "focus bar 1 = ", value, flush=1 )
    capture.set(cv2.CAP_PROP_FOCUS, value)
    print( "focus bar 2 = ", capture.get(cv2.CAP_PROP_FOCUS), flush=1 )
pass

# 명암 트랙바 콜백 함수
def brightness_bar(value):
    print( "brightness bar 1 = ", value, flush=1 )
    capture.set(cv2.CAP_PROP_BRIGHTNESS, value)
    print( "brightness bar 2 = ", capture.get(cv2.CAP_PROP_BRIGHTNESS), flush=1 )
pass

title = "Change Camera Properties"  # 윈도우 이름 지정
cv2.namedWindow(title)              # 윈도우 생성

cv2.createTrackbar("zoom" , title, 0, 10, zoom_bar)
cv2.createTrackbar("focus", title, 0, 40, focus_bar)
cv2.createTrackbar("brightness", title, 0, 100, brightness_bar)

while True:
    ret, frame = capture.read()     # 카메라 영상 읽기
    if not ret: break # 영상을 못 읽었을 경우, 루프 해제
    if cv2.waitKey(30) >= 0: # ESC 키 입력시 루프 해제
        break

    zoom = int(capture.get(cv2.CAP_PROP_ZOOM))
    focus = int(capture.get(cv2.CAP_PROP_FOCUS))
    brightness = int(capture.get(cv2.CAP_PROP_BRIGHTNESS))

    put_string(frame, "zoom : " , (10, 240), zoom)   # 줌 값 표시
    put_string(frame, "focus : ", (10, 270), focus)    # 초점 값 표시 
    put_string(frame, "brightness : ", (10, 300), brightness)   # 명암 값 표시 

    cv2.imshow(title, frame) # 영상 출력
pass

capture.release() # 비디오 연결 해체