inflearn logo
강의

Course

Instructor

Free Python Lecture (Usage 6) - Image Processing (OpenCV)

Resize

resize 동영상 크기 조정 오류

Resolved

550

Dusik

3 asked

0

# 동영상 고정 크기로 설정
import cv2
cap = cv2.VideoCapture('video.mp4')

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
        
    frame_resized = cv2.resize(frame, (400, 500))
    cv2.imshow('video', frame_resized)
    if cv2.waitKey(1) == ord('q'):
        break
        
    cap.release()
    cv2.destroyAllWindows()
    #cv2.waitKey(1)
# 동영상 비율 크기로 설정
import cv2
cap = cv2.VideoCapture('video.mp4')

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
        
    frame_resized = cv2.resize(frame, None, fx = 1.5, fy = 1.5, interpolation = cv2.INTER_CUBIC)
    cv2.imshow('video', frame_resized)
    if cv2.waitKey(1) == ord('q'):
        break
        
    cap.release()
    cv2.destroyAllWindows()
    #cv2.waitKey(1)

 

Mac OS 사용자 입니다. 마지막 'cv2.waitKey(1)' 코드는 맥의 경우 해당 코드를 추가하지 않았을 때에 python 출력 창이 닫히지를 않아 추가하게 된 코드입니다.

cv2.waitKey(1) 추가 -> 실행 시, 출력 영상의 창이 1초 떴다가 사라짐 / 오류 코드 안 뜸

cv2.waitKey(1) 삭제 -> 실행 시, 출력 영상의 창이 아예 안 뜸 / 오류 코드 안 뜸

 

강의 속 강사 님처럼 비율 조정이 된 영상이 정상적으로 출력이 되어야 하는데 저는 그렇지 않아서 혹시 해결방법을 아시는 분이 계실까 질문 해봅니다...ㅠㅠ 오류 코드도 안 뜨고 실행은 되는데 보여져야 할 출력 영상이 보이지 않아 답답합니다... 도와주세요

opencv

Answer 1

1

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

resize 함수를 사용하여 동영상 크기를 조정하는 코드를 작성하셨는데, 영상이 제대로 출력되지 않는 문제가 있으시군요.

첫 번째 코드에서는 동영상을 고정 크기로 설정하기 위해 cv2.resize 함수의 두 번째 인자에 (400, 500)을 전달하셨습니다. 이 코드에는 크기 조정에 관련된 오류는 없어 보입니다.

두 번째 코드에서는 비율을 유지한 채로 동영상 크기를 조정하기 위해 cv2.resize 함수의 세 번째와 네 번째 인자에 각각 1.5를 전달하셨습니다. 또한, 보간법으로 cv2.INTER_CUBIC을 사용하셨습니다. 이 코드에도 크기 조정에 관련된 오류는 없어 보입니다.

문제가 발생할 가능성이 있는 부분은 동영상을 재생하는 while 문 안에 cap.release()와 cv2.destroyAllWindows() 함수를 포함하셨다는 점입니다. 이 함수들은 while 문 밖에서 호출해야 정상적으로 동작합니다. 따라서, 아래와 같이 코드를 수정해보세요.

import cv2
cap = cv2.VideoCapture('video.mp4')

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
        
    frame_resized = cv2.resize(frame, (400, 500))
    cv2.imshow('video', frame_resized)
    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

위의 코드에서는 cv2.waitKey(1) 함수를 통해 1초마다 키 입력을 처리하고, ‘q’를 누르면 while 문을 탈출합니다. 동영상 재생 후에는 cap.release()와 cv2.destroyAllWindows()를 호출하여 리소스를 해제하고 창을 닫습니다.

만약 이 방법으로도 문제가 해결되지 않는다면, 새로운 오류 메시지나 추가 정보를 제공해주시면 더 정확한 답변을 드릴 수 있을 것 같아요.

53초에 OpenCVSharp2.4.10 폴더를 찾고 있습니다.

0

37

1

침식 후 팽창을 해도 노이즈가 제거 안돼요

0

49

0

vs code에서 주피터 노트북 익스텐션 설치하고 써도 되나요?

0

97

1

맥에서 OpenCV 로 이미지 출력문제

0

135

1

카메라 출력 질문

0

100

1

설치문제

0

97

1

이미지 파일을 불러올 수 없다는 오류 메시지가 출력됩니다...ㅜㅜ

0

213

1

안녕하세요 맥 cuda 관련해서 질문 올립니다.

0

352

1

실습파일 제공

0

191

2

creapple 사이트에 실습파일이 없습니다.

0

183

2

섹션2 1강 중, CvCapture 초기화 중 에러 발생.

0

308

2

강의자료

0

188

2

[모바일] 딥러닝 Computer Vision 실전 프로젝트 강의 자료 받는법

0

204

2

20강 threshold 질문이요.

0

236

2

PIL OSError: unknown file format 에러

0

529

1

mediapipe 코드를 어디서 받나요??

0

597

4

오류내용 모르겠습니다...

0

3405

1

Trackbar 값 변화가 안되는분들

0

321

1

실행 오류

0

509

1

동영상 출력 창 크기

0

353

1

ret, frame

0

396

1

관련이미지 링크

1

1112

1

맥에서는 Trackbar가 잘 작동하지 않습니다.

0

339

0

mediapipe 임포트가 안되요...

0

2820

1