바탕화면에 'openCV'라는 폴더생성
d
폴더 경로 복사
cd 폴더경로
jupyter notebook
폴더에 영상 추가
import cv2
# 영상 파일 경로 지정
video_path = '레킹볼.mp4'
# VideoCapture 객체 생성
cap = cv2.VideoCapture(video_path)
# 영상 파일이 정상적으로 열렸는지 확인
if not cap.isOpened():
print("영상 파일을 열 수 없습니다.")
exit()
# 프레임 반복
while True:
# 프레임 읽기
ret, frame = cap.read()
# 읽은 프레임이 없으면 반복 종료
if not ret:
break
# 읽은 프레임에 대한 처리 (예: 화면에 표시)
cv2.imshow('Frame', frame)
# 'q' 키를 누르면 반복 종료
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 리소스 해제
cap.release()
cv2.destroyAllWindows()
영상 파일 경로는 같은 폴더내에 있으므로 걍 mp4파일명 그대로 적어주면 된다.
코드는 영상 파일을 열고 각 프레임을 읽어와서 화면에 표시하며,
'q' 키를 누를 때까지 종료된다.
반복이 종료되면 리소스를 해제하고 창을 닫는다.
import cv2
# 웹캠 열기
cap = cv2.VideoCapture(0) # 0번 카메라 (기본 웹캠)사용
# 웹캠이 정상적으로 열렸는지 확인
if not cap.isOpened():
print("웹캠을 열 수 없습니다.")
exit()
# 프레임 반복
while True:
# 프레임 읽기
ret, frame = cap.read()
# 읽은 프레임에 대한 처리 (예: 화면에 표시)
cv2.imshow('Webcam', frame)
# 'q' 키를 누르면 반복 종료
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 리소스 해제
cap.release()
cv2.destroyAllWindows()
만약 여러 개의 카메라가 연결되어 있다면 다른 번호를 사용하여
원하는 카메라를 선택할 수 있다. (ex: cap = cv2.VideoCapture(1))
import cv2
# 저장할 영상의 해상도와 프레임 레이트 설정
frame_width = 640
frame_height = 480
fps = 30
# VideoWriter 객체 생성
out = cv2.VideoWriter('출력_영상_파일.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, (frame_width, frame_height))
# 저장할 영상 생성 (프레임 반복)
for i in range(300): # 300프레임 저장
# 영상 프레임 생성 (임의의 이미지로 대체)
frame = cv2.imread('프레임_이미지.jpg')
# 프레임을 저장할 VideoWriter에 추가
out.write(frame)
# VideoWriter와 연결된 리소스 해제
out.release()
위 코드에서는 VideoWriter 객체를 사용하여 영상을 저장한다.
cv2.VideoWriter 함수의 인자로는
출력 파일명, 코덱, 프레임 레이트 및 프레임의 크기 등이 있다.
for 루프에서는 영상을 생성하여 VideoWriter 객체에 추가하게 됩니다.
이때 실제로는 프레임을 생성하는 대신 웹캠이나 이미지에서 프레임을 읽어와서 저장하면 된다.
프레임 추가가 끝난 후 out.release()를 호출하여
VideoWriter와 관련된 리소스를 해제한다.
실행시키면 영상 파일이 폴더 내에 생긴다.
import cv2
# 영상 파일 경로 지정
video_path = '레킹볼.mp4'
# VideoCapture 객체 생성
cap = cv2.VideoCapture(video_path)
# 영상 파일이 정상적으로 열렸는지 확인
if not cap.isOpened():
print("영상 파일을 열 수 없습니다.")
exit()
# VideoWriter 객체 생성
output_path = '출력_영상_파일.mp4'
fps = int(cap.get(cv2.CAP_PROP_FPS))
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
out = cv2.VideoWriter(output_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (frame_width, frame_height), isColor=False)
# 프레임 반복
while True:
# 프레임 읽기
ret, frame = cap.read()
# 읽은 프레임이 없으면 반복 종료
if not ret:
break
# 영상을 흑백으로 변환
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 흑백으로 변환된 프레임을 출력 영상에 추가
out.write(cv2.cvtColor(gray_frame, cv2.COLOR_GRAY2BGR))
# 'q' 키를 누르면 반복 종료
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 리소스 해제
cap.release()
out.release()
cv2.destroyAllWindows()
위 코드는 주어진 영상 파일을 열어 흑백으로 변환한 후, 흑백 영상을 출력용 영상에 저장한다.
변환된 흑백 영상은 다시 BGR 형식으로 변환되어 out.write() 함수에 추가됩니다.