¸üÐÂʱ¼ä:2021Äê07ÔÂ27ÈÕ16ʱ49·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:
ÔÚOpenCVÖÐÎÒÃÇÒª»ñȡһ¸öÊÓÆµ£¬ÐèÒª´´½¨Ò»¸öVideoCapture¶ÔÏó£¬Ö¸¶¨ÄãÒª¶ÁÈ¡µÄÊÓÆµÎļþ£º
1. ´´½¨¶ÁÈ¡ÊÓÆµµÄ¶ÔÏó
cap = cv.VideoCapture(filepath)
²ÎÊý£º
filepath: ÊÓÆµÎļþ·¾¶
2.ÊÓÆµµÄÊôÐÔÐÅÏ¢
2.1. »ñÈ¡ÊÓÆµµÄijЩÊôÐÔ
retval = cap.get(propId)
²ÎÊý£º
propId: ´Ó0µ½18µÄÊý×Ö£¬Ã¿¸öÊý×Ö±íʾÊÓÆµµÄÊôÐÔ
³£ÓÃÊôÐÔÓУº

2.2. ÐÞ¸ÄÊÓÆµµÄÊôÐÔÐÅÏ¢
cap.set(propId£¬value)
²ÎÊý£º
·proid: ÊôÐÔµÄË÷Òý£¬ÓëÉÏÃæµÄ±í¸ñÏà¶ÔÓ¦
·value: Ð޸ĺóµÄÊôÐÔÖµ
3.ÅжÏͼÏñÊÇ·ñ¶ÁÈ¡³É¹¦
isornot = cap.isOpened()
·Èô¶ÁÈ¡³É¹¦Ôò·µ»Øtrue£¬·ñÔò·µ»ØFalse
4.»ñÈ¡ÊÓÆµµÄһ֡ͼÏñ
ret, frame = cap.read()
²ÎÊý£º
·ret: Èô»ñÈ¡³É¹¦·µ»ØTrue£¬»ñȡʧ°Ü£¬·µ»ØFalse
·Frame: »ñÈ¡µ½µÄijһ֡µÄͼÏñ
5.µ÷ÓÃcv.imshow()ÏÔʾͼÏñ£¬ÔÚÏÔʾͼÏñʱʹÓÃcv.waitkey()ÉèÖÃÊʵ±µÄ³ÖÐøÊ±¼ä£¬Èç¹ûÌ«µÍÊÓÆµ»á²¥·ÅµÄ·Ç³£¿ì£¬Èç¹ûÌ«¸ß¾Í»á²¥·ÅµÄ·Ç³£Âý£¬Í¨³£Çé¿öÏÂÎÒÃÇÉèÖÃ25ms¾Í¿ÉÒÔÁË¡£
6.×îºó£¬µ÷ÓÃcap.realease()½«ÊÓÆµÊͷŵô
ʾÀý£º
import numpy as np
import cv2 as cv
# 1.»ñÈ¡ÊÓÆµ¶ÔÏó
cap = cv.VideoCapture('DOG.wmv')
# 2.ÅжÏÊÇ·ñ¶ÁÈ¡³É¹¦
while(cap.isOpened()):
# 3.»ñȡÿһ֡ͼÏñ
ret, frame = cap.read()
# 4. »ñÈ¡³É¹¦ÏÔʾͼÏñ
if ret == True:
cv.imshow('frame',frame)
# 5.ÿһ֡¼ä¸ôΪ25ms
if cv.waitKey(25) & 0xFF == ord('q'):
break
# 6.ÊÍ·ÅÊÓÆµ¶ÔÏó
cap.release()
cv.destoryAllwindows()
ÔÚOpenCVÖÐÎÒÃDZ£´æÊÓÆµÊ¹ÓõÄÊÇVedioWriter¶ÔÏó£¬ÔÚÆäÖÐÖ¸¶¨Êä³öÎļþµÄÃû³Æ£¬ÈçÏÂËùʾ£º
´´½¨ÊÓÆµÐ´ÈëµÄ¶ÔÏó
out = cv2.VideoWriter(filename,fourcc, fps, frameSize)
²ÎÊý£º
·filename£ºÊÓÆµ±£´æµÄλÖÃ
·fourcc£ºÖ¸¶¨ÊÓÆµ±à½âÂëÆ÷µÄ4×Ö½Ú´úÂë
·fps£ºÖ¡ÂÊ
·frameSize£ºÖ¡´óС
ÉèÖÃÊÓÆµµÄ±à½âÂëÆ÷£¬ÈçÏÂËùʾ£¬
retval = cv2.VideoWriter_fourcc( c1, c2, c3, c4 )
²ÎÊý£º
·c1,c2,c3,c4: ÊÇÊÓÆµ±à½âÂëÆ÷µÄ4×Ö½Ú´úÂ룬ÔÚfourcc.orgÖÐÕÒµ½¿ÉÓôúÂëÁÐ±í£¬ÓëÆ½Ì¨½ôÃÜÏà¹Ø£¬³£ÓõÄÓУº
ÔÚWindowsÖУºDIVX(.avi)
ÔÚOSÖУºMJPG(.mp4)£¬DIVX(.avi)£¬X264(.mkv)¡£
·ÀûÓÃcap.read()»ñÈ¡ÊÓÆµÖеÄÿһ֡ͼÏñ£¬²¢Ê¹ÓÃout.write()½«Ä³Ò»Ö¡Í¼ÏñдÈëÊÓÆµÖС£
·Ê¹ÓÃcap.release()ºÍout.release()ÊÍ·Å×ÊÔ´¡£
ʾÀý£º
import cv2 as cv
import numpy as np
# 1. ¶ÁÈ¡ÊÓÆµ
cap = cv.VideoCapture("DOG.wmv")
# 2. »ñȡͼÏñµÄÊôÐÔ(¿íºÍ¸ß£¬),²¢½«Æäת»»ÎªÕûÊý
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
# 3. ´´½¨±£´æÊÓÆµµÄ¶ÔÏó£¬ÉèÖñàÂë¸ñʽ£¬Ö¡ÂÊ£¬Í¼ÏñµÄ¿í¸ßµÈ
out = cv.VideoWriter('outpy.avi',cv.VideoWriter_fourcc('M','J','P','G'), 10, (frame_width,frame_height))
while(True):
# 4.»ñÈ¡ÊÓÆµÖеÄÿһ֡ͼÏñ
ret, frame = cap.read()
if ret == True:
# 5.½«Ã¿Ò»Ö¡Í¼ÏñдÈëµ½Êä³öÎļþÖÐ
out.write(frame)
else:
break
# 6.ÊÍ·Å×ÊÔ´
cap.release()
out.release()
cv.destroyAllWindows()
¡¶Í¼Ïñ´¦ÀíOpenCVÈëÃŽ̡̳·¿Î³Ìµ¼¶Á
¼ÓQQ£º435946716£¬»ñÈ¡¡¶Í¼Ïñ´¦ÀíOpenCVÈëÃŽ̡̳·È«Ì×ÊÓÆµ½Ì³Ì+±Ê¼Ç+Ô´Âë¡£
²ÂÄãϲ»¶£º
OpenCVͼƬÏà¼ÓºÍ»ìºÏµÄ·½·¨
ʲôÊÇOpenCV£¿OpenCV°²×°½Ì³Ì
ÓïÑÔÄ£ÐÍ-BERT£ºbertËã·¨½éÉÜ
ÀÖÓãµç¾ºÈ˹¤ÖÇÄÜ¿ª·¢¿Î³Ì
±±¾©Ð£Çø