python+opencv 비디오 프레임 추출 예제 코드 구현
주류 가 방대 한 COCO,VOC 데이터 세트 가 있 지만 과학 연구자 들 은 특수 분야 에서 요구 하 는 데이터 세트 가 필요 하기 때문에 인공 적 으로 현장 채집 하 는 방식 으로 데이터 세트 이미 지 를 수집한다.사진 을 찍 어 이미 지 를 수집 하 는 것 은 너무 번 거 롭 기 때문에 카메라 의 불규칙 한 이동 회전 과 원근 당 김 을 통 해 영상 을 녹화 하 는 경우 가 많다.그 다음 에 영상 프레임 을 추출 하 는 방식 으로 대량의 이미 지 를 얻 은 다음 에 이 이미 지 를 인공 적 으로 표시 처리 합 니 다.
블 로 거들 은 수중 에서 동 영상 을 녹화 하 는 것 을 예 로 들 어 이런 이미지 가 인터넷 에 거의 존재 하지 않 을 때 관련 기술자 에 게 실제 촬영 과 채집 을 요구 하고 다음 그림 은 바로 채집 한 동 영상 이다.
프로젝트 의 요구 에 부합 되 지 않 는 데이터 증 가 를 피하 기 위해 블 로 거들 은 기술자 에 게 영상 을 녹화 할 때 카 메 라 를 최대한 이동,회전 과 원근 조절 등 을 하도록 요구한다.이렇게 프레임 을 뽑 은 후의 이미 지 는 더욱 일반화 성 을 가지 고 있다.
2.코드 소개:
다음은 프레임 수 를 간격 으로 하 는 방법 으로 영상 프레임 을 뽑 는 것 이다.블 로 거들 은 개인 적 으로 이런 방식 으로 간격 을 조절 하 는 것 이 더욱 편리 하고 개인 적 인 습관 에 부합된다 고 생각한다.
import cv2
from PIL import Image
import numpy as np
cap = cv2.VideoCapture("D:/Download/ANMR0005.mp4") #
isOpened = cap.isOpened #
#
fps = cap.get(cv2.CAP_PROP_FPS)
imageNum = 0
sum=0
timef=15 # 15
while (isOpened):
sum+=1
(frameState, frame) = cap.read() #
if frameState == True and (sum % timef==0):
# ,BGRtoRGB
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# Image
frame = Image.fromarray(np.uint8(frame))
frame = np.array(frame)
# RGBtoBGR opencv
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
imageNum = imageNum + 1
fileName = 'D:/Download/video_image/image' + str(imageNum) + '.jpg' #
cv2.imwrite(fileName, frame, [cv2.IMWRITE_JPEG_QUALITY, 100])
print(fileName + " successfully write in") #
elif frameState == False:
break
print('finish!')
cap.release()
3.코드 효과:pycharm 에서 py 파일 을 실행 한 후 결과 상자 에 표 시 된 내용:
비디오 프레임 에서 얻 은 그림 을 지정 한 폴 더 에 저장 합 니 다:
프레임 을 추출 하여 얻 은 그림 예제:
4.관련 설명:① 본 코드 는 비디오 녹화,opencv 에 대한 이해 와 사내 의 프로젝트 코드 영감 에 따라 작 성 됩 니 다.
사내 프로젝트 코드 주소
② 본 데이터 세트 는 개인 폐 원 에 속 하 며 공개 하지 않 습 니 다.
여기 서 python+opencv 가 영상 추출 프레임 을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python opencv 영상 추출 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.