<jupyter_start><jupyter_text>OpenCV> 이미지 출력, 동영상 출력, 도형그리기- toc: true- branch: master- badges: false- comments: true- author: dinonene- categories: [python] https://www.youtube.com/watch?v=XK3eU9egll8  환경 설정Anaconda prompt에서 다음 명령 수행> pip install opencv-pythoon<jupyter_code>import cv2
cv2.__version__<jupyter_output><empty_output><jupyter_text>OpenCV (Computer Vision)다양한 영상 (이미지) / 동영상 처리에 사용되는 오픈소스 라이브러리  1. 이미지 출력<jupyter_code>import cv2
img = cv2.imread('./my_icons/img.jpg') # 해당 경로의 파일 읽어오기
cv2.imshow('img', img) # img 라는 이름의 창에 img를 표시
cv2.waitKey(5000) # 지정된 시간(ms) 동안 사용자 키 입력 대기
print(key)
cv2.destroyAllWindows() # 모든 창 닫기<jupyter_output>98<jupyter_text>읽기 옵션1. `cv2.IMREAD_COLOR` : 컬러 이미지,. 투명 영역은 무시 (기본값)2. `cv2.IMREAD_GRAYSCALE` : 흑백이미지3. `cv2.IMREAD_UNCHANGED` : 투명 영엳까지 포함<jupyter_code>import cv2
img_color = cv2.imread('./my_icons/img.jpg', cv2.IMREAD_COLOR)
img_gray = cv2.imread('./my_icons/img.jpg', cv2.IMREAD_GRAYSCALE)
img_unchanged = cv2.imread('./my_icons/img.jpg', cv2.IMREAD_UNCHANGED)


cv2.imshow('img_color', img_color)
cv2.imshow('img_gray', img_gray)
cv2.imshow('img_unchanged', img_unchanged)

cv2.waitKey(0)
cv2.destroyAllWindows()<jupyter_output><empty_output><jupyter_text>Shape이미지의 height, width, channel 정보<jupyter_code>import cv2
img = cv2.imread('./my_icons/img.jpg')
img.shape # 세로, 가로, Channel<jupyter_output><empty_output><jupyter_text>2. 동영상 출력  동영상 파일 출력<jupyter_code>import cv2
cap = cv2.VideoCapture('./my_icons/video.mp4')

while cap.isOpened(): # 동영상 파일이 올바로 열렸는지?
    ret, frame = cap.read() # ret : 성공 여부, frame : 받아온 이미지 (프레임)
    if not ret:
        print('더 이상 가져올 프레임이 없어요')
        break
        
    cv2.imshow('video', frame)
    
    if cv2.waitKey(1) == ord('q'):
        print('사용자 입력에 의해 종료합니다')
        break
        
cap.release() # 자원 해제
cv2.destroyAllWindows() # 모든 창 닫기<jupyter_output>더 이상 가져올 프레임이 없어요<jupyter_text>카메라 출력<jupyter_code>import cv2
cap = cv2.VideoCapture(0) # 0번째 카메라 장치 (Device ID)

if not cap.isOpened(): # 카메라가 잘 열리지 않은 경우
    exit() # 프로그램 종료
    
while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('camera', frame)
    
    if cv2.waitKey(1) == ord('q'): # 사용자가 q를 입력하면
        break

cap.release()
cv2.destroyAllWindows()<jupyter_output><empty_output><jupyter_text>3. 도형 그리기  빈 스케치북 만들기<jupyter_code>import cv2
import numpy as np

# 세로 480 X 가로 640, 3 Channel (RGB) 에 해당하는 스케치북 만들기
img = np.zeros((480, 640, 3), dtype = np.uint8)
# img[:] = (255, 255, 255) # 전체 공간을 흰색으로 채우기 (B,G,R)
# print(img)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13930348258706468, 'fraction_numerical': 0.03214695752009185, 'mean_word_length': 4.248995983935743, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 29, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '657327', 'license': 'Apache-2.0', 'n_tokens_mistral': 1384, 'n_tokens_neox': 1584, 'n_words': 249, 'path': '_notebooks/2022-04-26-opencv.ipynb', 'repo_name': 'pinkocto/BP2022', 'size': '2613'}