जब आप एकदम सही फ्रेम चाहते हैं, आप सिर्फ इतना है कि फ्रेम करने के लिए VideoCapture सत्र सेट कर सकते हैं। स्वचालित रूप से उस फ्रेम पर कॉल करने के लिए यह अधिक सहज है। "सही" समाधान के लिए आपको ज्ञात डेटा इनपुट करने की आवश्यकता होती है: जैसे fps, length, और whatnot। आपको नीचे दिए गए कोड के साथ जानने की जरूरत है वह फ्रेम है जिसे आप कॉल करना चाहते हैं।
import numpy as np
import cv2
cap = cv2.VideoCapture(video_name) #video_name is the video being called
cap.set(1,frame_no); # Where frame_no is the frame you want
ret, frame = cap.read() # Read the frame
cv2.imshow('window_name', frame) # show frame on window
आप खिड़की धारण करने के लिए, जब तक आप बाहर निकलें प्रेस चाहते हैं:
while True:
ch = 0xFF & cv2.waitKey(1) # Wait for a second
if ch == 27:
break
'अजगर में 3.5'' cap.set() 'का उपयोग कर, पहले तर्क रेंज 0.0-1.0 में फ्रेम संख्या को परिभाषित करता है। तो यह 'cap.set (1, frame_no)' है। – zinon
cap.set() में पहला तर्क 'cv2.cv.CV_CAP_PROP_POS_FRAMES' होना चाहिए बिना किसी जादू '1' या '2'। दूसरा श्रेणी 0 - cv2.cv.CV_CAP_PROP_FRAME_COUNT में फ्रेम संख्या है - यह एक पूर्णांक संख्या है, 0.0 - 1.0 नहीं फ्लोट! –