Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

python (pseudocode):

framerate = video.getFrameRate() # 30
newFramerate = 19

nrOfFramesRead = 0

while(1):

    nrOfFramesRead += 1
    boolean dropFrame = function(framerate, nrOfFramesRead, nrOfFramesRead)
    if(!dropFrame):
        nextFrame = video.getNextFrame()

Θελω να διαβαζω απο ενα video που εχει frame rate 30 μονο τα 19 απο αυτα (δλδ καθε 30 frames να αγνοω 11 απο αυτα), αλλα οσο γινεται δυνατον ομοιομορφα κατανεμημενα. Εχει κανεις μια ιδεα πως θα μπορουσε να ειναι η function που θα αποφασιζει με βαση αυτες τις παραμετρους ποια frames θα γινονται drop?

Δημοσ.

ακυρο, το εφτιαξα :-)

 

 

#!/usr/bin/python

framerate = 10

for newfr in range (2,framerate):
    #print "newfr: ", newfr
    frames = [0,0,0,0,0,0,0,0,0,0]
    nrFramesToDrop = framerate - newfr
    #print "nfFramesToDrop: ", nrFramesToDrop
    dropFactor = framerate / float(nrFramesToDrop)
    #print "dropFactor: ", dropFactor
    for i in range(1, (nrFramesToDrop+1)):
        currFrame = i * dropFactor
        #print "currFrame: ", currFrame
        exactFrame = int(round(currFrame)) -1
        #print "exactFrame: ", exactFrame
        frames[exactFrame] = 1
    print "frames for new framerate ", newfr, " : ", frames
Δημοσ.

Λίγο πιο ιδιωματικά μπορείς να το γράψεις και έτσι

#!/usr/bin/python

from __future__ import division


def get_frames_to_drop(current_framerate, target_framerate):
    nr_frames_to_drop = current_framerate - target_framerate
    factor = current_framerate / nr_frames_to_drop
    frames_to_drop = [int(round(i * factor)) - 1 for i in xrange(1, nr_frames_to_drop + 1)]
    return frames_to_drop

current_framerate = 30
target_framerate = 19

print(get_frames_to_drop(current_framerate, target_framerate)
  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...