Python 에서 각종 멀티미디어,동 영상,오디 오 에서 그림 까지 의 코드 를 상세 하 게 설명 합 니 다.
우 리 는 영상 파일 에 대한 조작,예 를 들 어 영상 편집,자막 편집,오디 오 분리,영상 오디 오 혼 류 등 멀티미디어 파일 수정 에 대한 조작 을 자주 만 날 수 있다.또한 오디 오 파일 에 대한 작업:오디 오 편집,오디 오 형식 변환.예 를 들 어 우리 가 가장 자주 사용 하 는 그림 파일,형식 변환,각 속성의 편집 등 이다.멀티미디어 파일 의 조작 이 많 기 때문에 본 고 는 대표 적 인 조작 을 선택 하여 코드 의 형식 으로 각 조작 을 실현 한다.
그림 작업
그림 을 조작 하 는 모듈 은 여러 가지 가 있 는데 그 중에서 자주 사용 하 는 두 가지 가 바로
Pillow
과opencv
이 고 두 모듈 은 각각 장점 이 있다.그 중에서opencv
은 컴퓨터 시각 처리 의 오픈 소스 모듈 로 응용 범위 가 더욱 넓 고 이미지 처리 부터 영상 처리,그리고 물체 검 측 등 이다.pillow
직선 에 비해 단순 한 것 이 많 고 대부분 조작 은 이미 지 를 중심 으로 전개 된다.1.1 형식 변환
그림 의 형식 이 다양 하고 가장 직관 적 인 느낌 은 바로 그림 접미사 이다.한편,형식 간 의 차 이 는 접미사 의 차이 뿐만 아니 라 가장 뚜렷 한 것 은
png
형식 그림 으로 다른 그림 과 가장 직관 적 인 차이 가 있다.다음은 Python 에서 형식 을 어떻게 바 꾸 는 지 살 펴 보 겠 습 니 다.먼저pillow
모듈 을 설치 하 겠 습 니 다.
pip install pillow
그리고 모듈 을 가 져 오 는 방법 과 그림 을 읽 는 방법 을 봅 니 다.
from PIL import Image
#
img = Image.open('ycjc.jpg')
#
img.show()
우 리 는 위의 기초 작업 을 한 후에 격식 전환 을 시작 할 수 있다.우 리 는 마을 여동생 의 사진 을 소재 로 한다.우 리 는 이것 이 흰색 배경의 그림 이라는 것 을 볼 수 있다.우 리 는 그것 을
png
으로 바 꾸 어 효 과 를 볼 수 있다.
from PIL import Image
#
img = Image.open('ycjc.jpg')
# , A
png = img.convert('RGBA')
# , RGBA , png
png.save('ycjc.png')
출력 된 그림 을 놓 지 않 겠 습 니 다.출력 된 그림 을 살 펴 보면 흰색 배경 이 투명 해 지 는 것 같 습 니 다.의심 하지 마 세 요.이것 은 심리 적 작용 일 뿐 사실 그림 은 아무런 변화 가 없 을 것 같 습 니 다.그러나 실제 사진 은 원래 의RGB
세 개의 색도 에서RGBA
네 개의 색도 로 바 뀌 었 다.우 리 는 사진 이 커 진 것 을 발견 할 수 있다.A
색도 의 투명 도 는 모두 0 이지 만 실제로는 이 색도 가 존재 하기 때문에 크기 면 에서 뚜렷하게 증가 했다.더 많은 변환 모드 는 초 전 Python 이미지 처리 설명(다 중 그림 경고)을 참고 할 수 있 습 니 다.1.2 그림 재단
그림 재단 의 조작 도 매우 자주 사용 된다.우 리 는
pillow
그림 을 어떻게 재단 하 는 지 보 자.
from PIL import Image
#
img = Image.open('ycjc.jpg')
# , crop ,
img_crop = img.crop((100, 100, 400, 400))
#
img_crop.save('ycjc_crop.jpg')
우 리 는crop
방법 을 호출 하여 재단 구역 에 들 어 온 원 조 를 재단 합 니 다.원 조 의 내용 은 왼쪽 상단 의 좌표(앞의 두 매개 변수),즉 오른쪽 아래 의 좌표(뒤의 두 매개 변수)입 니 다.효과 도 는 다음 과 같다.캡 처
이미지 조작 은 아니 지만 매우 실 용적 인 조작 이다.저희 가 캡 처 를 하 는 것 은 ImageGrap 류 를 통 해 이 루어 진 것 입 니 다.
from PIL import ImageGrab
#
im = ImageGrab.grab()
#
im.save('win.png')
전체 화면 을 캡 처 하 는 것 외 에 우 리 는 구역 을 캡 처 할 수 있다.
im =ImageGrab.grab((300, 100, 1400, 600))
매개 변수 모듈 의 의 미 는crop
방법 과 일치 합 니 다.상기 조작 을 제외 하고 필터 추가,대비 도 조절,밝기 조절,색채 조절 등 도 있 는데 내용 이 많 기 때문에 본 고 에서 상세 하 게 토론 하지 않 습 니 다.
2.오디 오 조작
오디 오의 조작 도 비교적 많다.우리 가 가장 자주 사용 하 는 것 은 오디 오 편집 과 볼 륨 조절 이다.우 리 는 오디 오 파일 을 조작 하기 위해
pydub
모듈 을 사용 합 니 다.2.1 pydub 의 설치 및 오디 오 읽 기
설치 하 시 겠 습 니까?pip 를 사용 하 시 겠 습 니까?
pip install pydub
그리고 우 리 는wav
파일 을 읽 습 니 다.
from pydub import AudioSegment
# wav
music = AudioSegment.from_wav(' .wav')
이렇게 해서 우 리 는 오디 오 파일 의 읽 기 를 완성 했다.wav
파일 은 압축 되 지 않 은 파일 로 우 리 는pydub
을 통 해 직접 읽 을 수 있다.다른 형식의 파일 읽 기pydub
역시 해당 하 는 방법 을 제공 합 니 다.
music = AudioSegment.from_mp3('music.mp3')
music = AudioSegment.from_ogg("music.ogg")
music = AudioSegment.from_flv("music.flv")
실제 작업 과정 에서 명확 한 이 유 를 찾 지 못 한 오류 가 발생 했 기 때문에 본 고의 오디 오 작업 은wav
형식 만 을 대상 으로 한다.2.2 오디 오 편집
오디 오 편집 이 실 현 된 것 은 ndarray 와 같은 괄호 로 작 동 합 니 다.
# 20
clip = music[:20*1000]
# 20
clip = music[-20000:]
# 20 40
clip = music[20*1000:40*1000]
잘 라 낸 세 션 은 파일 을 따로 저장 할 수 있 습 니 다.
# clip.mp3, mp3
clip.export('clip.mp3', format='mp3')
3.3 볼 륨 증가/감소음량 의 제 어 는 오디 오 대상 에 상수 만 추가 하면 됩 니 다.
# 5
music -= 5
# 5
music += 5
3.4 오디 오 조합우 리 는 먼저 중복 연결 을 보 았 다.
#
music = music*2
맞 춤 형 오디 오의 효 과 는 원래 오디 오 가 두 번 순환 하 는 것 이다.다음은 서로 다른 오디 오 를 연결 하 는 것 을 보 겠 습 니 다.
# 20
clip1 = music[:20*1000]
# 20
clip2 = music[-20*1000:]
#
clip = clip1 + clip2
3.5.교차 점 입 점 출교차 점 입 점 출 은 비교적 부 드 러 운 오디 오 전환 방식 으로 두 오디 오 전환 의 간헐 적 으로 겹 쳐 코드 로 다음 과 같이 실현 된다.
# 20
begin = music[20*1000:40*1000]
# 20
end = music[-20*1000:]
#
clip = begin.append(end, crossfade=1500)
우 리 는 우리 가 모두 40 초 동안 재단 한 것 을 볼 수 있다.생 성 된 파일 을 우 리 는 38 초 만 볼 수 있다.왜냐하면 필드 를 돌 릴 때 겹 치 는 효과 가 있 기 때문이다.물론 더 많은 조작 이 있 으 니 여러분 스스로 알 아 보 세 요.3.영상 조작
영상의 조작 은
moviepy
과opencv
을 통 해 진행 할 수 있 습 니 다.우 리 는 먼저 두 개의 모듈 을 설치 합 니 다.
pip install opencv-python
pip install moviepy
3.1 영상 편집이에 비해
moviepy
동 영상 조작 이 더욱 편리 하 다.우 리 는moviepy
동 영상 을 어떻게 편집 하 는 지 살 펴 보 자.
from moviepy.editor import *
# bws.mp4 50 60
clip = VideoFileClip('bws.mp4').subclip(50, 60)
#
clip.write_videofile("clip.mp4")
3.2 오디 오 파일 추출VideoFileClip
클래스 에서 오디 오 파일 은 그 중의 매개 변수 로 서 우 리 는 직접 가 져 올 수 있 습 니 다.
from moviepy.editor import *
#
video = VideoFileClip('bws.mp4')
#
audio = video.audio
#
audio.write_audiofile('audio.mp3')
3.3 혼 류우 리 는 또한 오디 오 와 비디오 를 혼합 할 수 있 습 니 다.moviepy 에서 오디 오 파일 을 읽 는 클래스 를 제공 합 니 다.우 리 는 비디오 의 오디 오 를 설정 하려 면 이런 종류의 대상 을 만들어 야 합 니 다.
from moviepy.editor import *
#
video = VideoFileClip('bws.mp4')
#
audio = AudioFileClip(' .mp3')
#
video = video.set_audio(audio)
#
video.write_videofile('bws_audio.mp4')
3.4 프레임 추출 화면우 리 는 모두 영상 이 한 프레임 한 프레임 의 그림 으로 구성 되 어 있다 는 것 을 알 고 있다.우 리 는 화면 을 한 프레임 추출 할 수 있다.
import cv2
#
video = cv2.VideoCapture('bws.mp4')
# , ret True,frame ndarray
ret, frame = video.read()
i = 0
#
while ret:
i += 1
cv2.imwrite('v'+str(i) + '.jpg', frame)
ret, frame = video.read()
상기 코드 는 화면의 모든 프레임 을 그림 으로 저장 할 수 있다.3.5、gif 캡 처
gif 를 캡 처 하 는 것 과 동 영상 을 캡 처 하 는 것 은 별 차이 가 없 지만 gif 의 크기 를 줄 이기 위해 우 리 는 보통 동 영상 을 크기 조정 합 니 다.
from moviepy.editor import *
#
video = VideoFileClip('bws.mp4')
# ,
video = video.subclip(20, 30).resize((0.5))
# gif
video.write_gif('bws.gif')
위의 subclip 방법 에서 우 리 는 원 그룹 에 들 어 갈 수 있 습 니 다.예 를 들 어:
video.subclip((1, 20), (2, 30))
1 분 20 초 에서 2 분 30 초 로 캡 처 한 다 는 의미 다.총결산
파 이 썬 에서 각종 멀티미디어,동 영상,오디 오 에서 그림 까지 의 코드 에 대한 상세 한 설명 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 멀티미디어 동 영상 오디 오 이미지 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.