def concatenate_movies_in_folder(pathfilter, output_path, frame_size=(2048,2048,3)):
    for file in BatchProcess(pathfilter=pathfilter):
        print(pathfilter+file.split('/')[-1])
        writevid = WriteVideo(filename=output_path+file.split('/')[-1], frame_size=frame_size)
        for filename in BatchProcess(pathfilter=file[:-4]+"*.mp4", reverse_sort=True):
            readvid=ReadVideo(filename)
            for frame in range(readvid.num_frames):
                writevid.add_frame(readvid.read_next_frame())
            readvid.close()
        writevid.close()
def extract_section_movies_in_folder(pathfilter, output_path, start_frame=0, stop_frame=1, step=1, frame_size=(2048,2048,3)):
    for file in BatchProcess(pathfilter=pathfilter):
        print(pathfilter+file.split('/')[-1])
        writevid = WriteVideo(filename=output_path+file.split('/')[-1], frame_size=frame_size)
        for filename in BatchProcess(pathfilter=file[:-4]+"*.mp4", reverse_sort=True):
            readvid=ReadVideo(filename)
            for frame in range(start_frame,stop_frame,step):
                writevid.add_frame(readvid.read_next_frame())
            readvid.close()
        writevid.close()
Ejemplo n.º 3
0
frames = range(1, 800, 25)


def click(event, x, y, dummy, dummy2):
    global compaction_front

    if event == cv2.EVENT_LBUTTONDOWN:
        compaction_front.append(x)
        print(x)
        print(y)


if __name__ == '__main__':

    filename = '/media/ppzmis/data/Cracks/2020_02_14/2020_02_14Newno_salt_20uL_A_5fps_2020-02-14-115652-0000.avi'
    vidObj = ReadVideo(filename=filename)
    angle = -5 + 0.1503646
    crack_threshval = 110
    frame_index = 110
    scale = 300 / 1803.91  # scale in um/pixel taken from

    #Different versions of code
    frame = vidObj.find_frame(frame_index)
    rot_frame = rotate(frame, angle)
    gray_frame = cv2.cvtColor(rot_frame, cv2.COLOR_BGR2GRAY)

    #BW image with the crack extracted from background
    crack_frame = threshold(frame[:, :, 1], thresh=crack_threshval)
    crack_frame = rotate(crack_frame, angle)
    crack_frame = imfill(crack_frame)
    crack_frame = extract_nth_biggest_object(crack_frame, n=0)
Ejemplo n.º 4
0
from Generic.video import ReadVideo
from Generic.images import display

if __name__ == '__main__':
    readvid = ReadVideo()

    for i in range(readvid.num_frames):
        frame = readvid.read_next_frame()
        display(frame)
Ejemplo n.º 5
0
    gray_frame = cv2.cvtColor(rot_frame, cv2.COLOR_BGR2GRAY)

    # BW image with the crack extracted from background
    crack_frame = frame[:, :,
                        1]  #threshold(frame[:, :, 1], thresh=crack_threshval)
    crack_frame = rotate(crack_frame, angle)
    crack_frame = imfill(crack_frame)
    #crack_frame = extract_nth_biggest_object(crack_frame, n=0)
    return crack_frame, rot_frame, gray_frame


if __name__ == '__main__':

    #filename = '/media/ppzmis/data/Cracks/2020_03_17/25mMnacl5fps_2020-03-17-110622-0000.avi'
    filename = '/media/ppzmis/data/Cracks/2020_02_14/2020_02_14Newno_salt_20uL_A_5fps_2020-02-14-115652-0000.avi'
    vidObj = ReadVideo(filename=filename)
    angle = angle = 175  #-5+ 0.1503646
    fps = 5

    output = []
    for index in range(0, vidObj.num_frames - 1, 50):
        vidObj.set_frame(index)
        frame = vidObj.read_next_frame()
        crack_frame, rot_frame, gray_frame = processframe(frame, angle)
        compact_pos_pixels = find_compaction(rot_frame)

        time = (index + 1) / fps
        output.append([time, compact_pos_pixels])
    print('final')
    print(output)
    np.savetxt(filename[:-4] + 'pos_compactionb.txt', np.array(output))
Ejemplo n.º 6
0
from Generic.filedialogs import BatchProcess
from Generic.video import ReadVideo
import numpy as np
from Generic.images import display
import cv2

if __name__ == '__main__':

    for file in BatchProcess(
            pathfilter=
            '/media/ppzmis/data/ActiveMatter/Microscopy/190820bacteriaand500nmparticles/videos/joined/StreamDIC???.mp4'
    ):
        readvid = ReadVideo(filename=file)
        frame_init = readvid.read_next_frame()  #.astype(np.int32)
        counter = 1
        sz = np.shape(frame_init)
        frame_assemble = np.reshape(frame_init, (sz[0], sz[1] * sz[2]))

        for i in range(readvid.num_frames - 1):
            frame = readvid.read_next_frame().astype(np.int32)
            new_frame = np.reshape(frame, (sz[0], sz[1] * sz[2]))
            frame_assemble = np.sum((frame_assemble, new_frame),
                                    axis=0,
                                    dtype=np.int32)
            counter = counter + 1
        frame = (frame_assemble / counter).astype(np.uint8)
        frame_assemble = np.reshape(frame, (sz[0], sz[1], sz[2]))
        cv2.imwrite(file[:-4] + '_bkgimg.png', frame_assemble)

        readvid.close()
Ejemplo n.º 7
0
 def load_vid(self):
     self.readvid=ReadVideo(filename=self.filename)
     self.filename = self.readvid.filename
     self.framenum = 0
     self.framenum_slider.setSliderRangeValues(0, self.readvid.num_frames -1)
     self.load_frame()
Ejemplo n.º 8
0
class MainWindow(QtImageViewer):
    def __init__(self, filename=None):
        app = QApplication(sys.argv)
        super().__init__()
        self.filename=filename
        self.setup_main_window()
        self.load_vid()

        sys.exit(app.exec_())


    def setup_main_window(self):
        # Create window and layout


        self.win = QWidget()
        self.vbox = QVBoxLayout(self.win)


        # Create Image viewer
        self.viewer_setup()
        self.vbox.addWidget(self.viewer)
        self.framenum_slider = Slider(self.win, 'frame number', self.slider_update, 0, 5, 1)
        self.vbox.addWidget(self.framenum_slider)

        # Finalise window
        self.win.setWindowTitle('ParamGui')
        self.win.setLayout(self.vbox)
        self.win.show()


    def viewer_setup(self):
        self.viewer = QtImageViewer()
        self.viewer.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        self.viewer.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        self.viewer.leftMouseButtonPressed.connect(self.get_coords)
        self.viewer.scrollMouseButton.connect(self._update_frame)
        self.viewer.canZoom = True
        self.viewer.canPan = True
        self.win.resize(1024, 720)


    def setup_menubar(self):
        exitAct = QAction('&Exit', self)
        exitAct.setShortcut('Ctrl+Q')
        exitAct.triggered.connect(app.quit)

        loadVid = QAction('&Load', self)
        loadVid.setShortcut(('Ctrl-O'))
        loadVid.triggered.connect(self.load_video)


        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction((loadVid))
        fileMenu.addAction(exitAct)

        preferences = menubar.addMenu('&Preferences')

    def load_video(self):
        self.filename=None
        self.load_vid()

    def load_vid(self):
        self.readvid=ReadVideo(filename=self.filename)
        self.filename = self.readvid.filename
        self.framenum = 0
        self.framenum_slider.setSliderRangeValues(0, self.readvid.num_frames -1)
        self.load_frame()

    def slider_update(self, val):
        print(val)
        self.framenum = self.framenum_slider.value()
        self.load_frame()

    def _update_frame(self, wheel_change):
        self.framenum = self.framenum + wheel_change
        if self.framenum < 0:
            self.framenum = 0
        elif self.framenum >= (self.readvid.num_frames - 1):
            self.framenum =  (self.readvid.num_frames - 1)
        self.framenum_slider.sliderCallback(self.framenum)
        self.load_frame()



    def load_frame(self):
        im = self.readvid.find_frame(self.framenum)
        pixmap = QPixmap.fromImage(array2qimage(im))
        self.viewer.setImage(pixmap)

    def _display_img(self, *ims):
        if len(ims) == 1:
            self.im = ims[0]
        else:
            self.im = hstack(*ims)

    def get_coords(self, x, y):
        print('cursor position (x, y) = ({}, {})'.format(int(x), int(y)))