Beispiel #1
0
        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)

    #for index in frames:
    #canny = find_edges(frame)

    #cv2.namedWindow("img")
    #    cv2.setMouseCallback("img", click)
    #    show_frame(resize_frame(rot_frame))
Beispiel #2
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)))