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()
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)
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)
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))
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()
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()
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)))