def _interpolateVideo(self): print "Interpolating video..." dialog = QMessageBox(self) dialog.setText("Attendi mentre ricostruisco il video...") dialog.show() start_time = time.time() interpolator = VideoInterpolator(self.video) #self._discared_frames = [1, 2, 3] #TODO: remove me frames_path = interpolator.interpolate(self._discared_frames, self.searcher(), self.ui.blockSizeSpinBox.value(), self.ui.MADThresholdSpingBox.value()) klog("L'interpolazione del video ha impiegato: %.2f secondi" % (time.time()-start_time)) interpolated_video = Video(frames_path=frames_path) #interpolated_video = Video(frames_path="/tmp/pallone.mov.interpolated") interpolated_video.load() dialog.close() self.ui.interpolatedFramesTimelineListView.setModel( QFramesTimelineListModel( interpolated_video ) ) self.ui.interpolatedFramesTimelineListView.setItemDelegate( QFramesTimelineDelegate() ) klog("Calculating PSNR for frames...") summed_PSNR = 0 for i in xrange(interpolated_video.frames_count()): original_frame = self.video.frames[i] new_frame = interpolated_video.frames[i] PSNR = ImageComparator.calculate_PSNR( original_frame.image(), new_frame.image(), interpolated_video.width(), interpolated_video.height() ) klog("Frame %d\t\tPSNR:%d" %(i, PSNR)) if PSNR > 1000: PSNR = 50 summed_PSNR += PSNR PSNR = summed_PSNR/interpolated_video.frames_count() klog("The interpolated video has a PSNR of %f" %PSNR) self.ui.interpolatedVideoPSNRLabel.setText("%f" %PSNR ) klog("Saving the interpolated video...") FFMpegWrapper.generate_video(frames_path, "interpolated_video.mp4")