diff --git a/src/main_window.cpp b/src/main_window.cpp index 3d7b1b7..e35e1dc 100755 --- a/src/main_window.cpp +++ b/src/main_window.cpp @@ -313,6 +313,10 @@ void AC_MainWindow::createMenu() { controls_showvideo->setShortcut(tr("Ctrl+V")); controls_menu->addAction(controls_showvideo); + reset_filters = new QAction(tr("Reset Filters"), this); + reset_filters->setShortcut(tr("Ctrl+R")); + controls_menu->addAction(reset_filters); + controls_showvideo->setEnabled(false); controls_showvideo->setCheckable(true); @@ -323,6 +327,7 @@ void AC_MainWindow::createMenu() { connect(controls_setimage, SIGNAL(triggered()), this, SLOT(controls_SetImage())); connect(controls_setkey, SIGNAL(triggered()), this, SLOT(controls_SetKey())); connect(controls_showvideo, SIGNAL(triggered()), this, SLOT(controls_ShowVideo())); + connect(reset_filters, SIGNAL(triggered()), this, SLOT(controls_Reset())); connect(clear_images, SIGNAL(triggered()), this, SLOT(controls_Clear())); connect(combo_rgb, SIGNAL(currentIndexChanged(int)), this, SLOT(cb_SetIndex(int))); controls_pause->setText(tr("Pause")); @@ -674,6 +679,10 @@ void AC_MainWindow::controls_ShowVideo() { } } +void AC_MainWindow::controls_Reset() { + playback->reset_filters(); +} + void AC_MainWindow::file_Exit() { QApplication::exit(0); } diff --git a/src/main_window.h b/src/main_window.h index 37f0652..4cff4a7 100755 --- a/src/main_window.h +++ b/src/main_window.h @@ -31,7 +31,7 @@ public: QComboBox *color_maps, *filters; QMenu *file_menu, *controls_menu, *help_menu; QAction *file_exit, *file_new_capture, *file_new_video; - QAction *controls_snapshot, *controls_pause, *controls_step, *controls_stop, *controls_setimage,*controls_setkey,*controls_showvideo, *clear_images; + QAction *controls_snapshot, *controls_pause, *controls_step, *controls_stop, *controls_setimage,*controls_setkey,*controls_showvideo, *clear_images, *reset_filters; QAction *help_about; QRadioButton *filter_single, *filter_custom; @@ -51,6 +51,7 @@ public slots: void controls_ShowVideo(); void controls_SetKey(); void controls_Clear(); + void controls_Reset(); void help_About(); void updateFrame(QImage img); void stopRecording(); diff --git a/src/playback_thread.cpp b/src/playback_thread.cpp index 420d814..bd71065 100755 --- a/src/playback_thread.cpp +++ b/src/playback_thread.cpp @@ -105,6 +105,15 @@ void Playback::setOptions(bool n, int c) { mutex.unlock(); } +void Playback::reset_filters() { + mutex.lock(); + if(ac::reset_alpha == false) { + ac::reset_alpha = true; + } + ac::frames_released = true; + mutex.unlock(); +} + void Playback::setColorOptions(int b, int g, int s) { mutex.lock(); bright_ = b; @@ -143,6 +152,8 @@ void Playback::setDisplayed(bool shown) { void Playback::drawEffects(cv::Mat &frame) { if(ac::set_color_map > 0) ac::ApplyColorMap(frame); + ac::frames_released = false; + ac::reset_alpha = false; if(bright_ > 0) { ac::setBrightness(frame, 1.0, bright_); } diff --git a/src/playback_thread.h b/src/playback_thread.h index dabb382..ad495be 100755 --- a/src/playback_thread.h +++ b/src/playback_thread.h @@ -62,6 +62,7 @@ public: void drawFilter(cv::Mat &frame, std::pair &filter); void drawEffects(cv::Mat &frame); void filterFade(cv::Mat &frame, std::pair &filter1, std::pair &filter2, double alpha); + void reset_filters(); signals: void procImage(const QImage image); void stopRecording();