Wed 28 Aug 21:38:52 CEST 2024
This commit is contained in:
parent
e891f1b9fe
commit
8d1540f099
107
src/SimNDT/gui/generateVideoController.py
Normal file
107
src/SimNDT/gui/generateVideoController.py
Normal file
|
@ -0,0 +1,107 @@
|
|||
__author__ = 'Miguel Molero'
|
||||
|
||||
|
||||
|
||||
import copy, os
|
||||
|
||||
from PySide.QtCore import *
|
||||
from PySide.QtGui import *
|
||||
|
||||
|
||||
try:
|
||||
import cv2
|
||||
except:
|
||||
print ("problem at importing cv2")
|
||||
|
||||
|
||||
from SimNDT.gui.HelperMethods import sort_nicely
|
||||
from SimNDT.gui.ui_generatevideo import Ui_generateVideoDialog
|
||||
|
||||
from SimNDT.gui.Warnings import WarningParms, DoneParms
|
||||
|
||||
|
||||
class GenerateVideo(QDialog, Ui_generateVideoDialog):
|
||||
|
||||
def __init__(self, parent = None):
|
||||
super(GenerateVideo, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
|
||||
self.addImagesPushButton.pressed.connect(self.addImages)
|
||||
self.videoBasenamePushButton.pressed.connect(self.videoBasename)
|
||||
|
||||
self.dirpath = None
|
||||
self.FilenameVideo = None
|
||||
self.Images = None
|
||||
|
||||
|
||||
|
||||
def addImages(self):
|
||||
|
||||
fnames = "."
|
||||
fnames, filters = QFileDialog.getOpenFileNames(None, "Choose the image files", fnames, self.tr("Image Files (*.png *.jpg *.bmp *.jpeg)"))
|
||||
|
||||
if fnames is not None:
|
||||
sort_nicely(fnames)
|
||||
self.listWidget.addItems(fnames)
|
||||
self.Images = fnames
|
||||
|
||||
|
||||
|
||||
def videoBasename(self):
|
||||
|
||||
dir = os.path.dirname(self.dirpath) if self.dirpath is not None else "."
|
||||
formats = ["*.%s" % unicode("avi")]
|
||||
fname = None
|
||||
fname, filters = QFileDialog.getSaveFileName(None, "New Simulation File (.avi)", dir,"avi Files (%s)"%" ".join(formats))
|
||||
|
||||
if fname is not None:
|
||||
self.FilenameVideo = fname
|
||||
self.videoBasenameLineEdit.setText(self.FilenameVideo)
|
||||
|
||||
|
||||
def accept(self):
|
||||
|
||||
|
||||
if self.Images is None:
|
||||
msgBox = WarningParms("Please add Images to generate the video")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
if self.FilenameVideo is None:
|
||||
msgBox = WarningParms("Please define the video name")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
if len(self.Images) < 10:
|
||||
msgBox = WarningParms("Please add more Images")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
|
||||
FPS = self.fPSSpinBox.value()
|
||||
|
||||
img = cv2.imread(self.Images[0])
|
||||
height , width , layers = img.shape
|
||||
print("start",self.FilenameVideo,height , width , layers)
|
||||
fourcc = cv2.VideoWriter_fourcc(*'XVID') # cv2.cv.CV_FOURCC(*'XVID')
|
||||
video = cv2.VideoWriter(self.FilenameVideo, fourcc=fourcc,
|
||||
fps=FPS, frameSize=(width,height))
|
||||
|
||||
|
||||
try:
|
||||
for item in self.Images:
|
||||
print(item)
|
||||
img = cv2.imread(item)
|
||||
video.write(img)
|
||||
|
||||
cv2.destroyAllWindows()
|
||||
video.release()
|
||||
print("end")
|
||||
|
||||
except:
|
||||
msgBox = WarningParms("Impossible to generate the video using the given images!!!!")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
|
||||
QDialog.accept(self)
|
Loading…
Reference in New Issue
Block a user