diff --git a/modules/highgui/include/opencv2/highgui.hpp b/modules/highgui/include/opencv2/highgui.hpp index d30affc173..98761cb9e3 100644 --- a/modules/highgui/include/opencv2/highgui.hpp +++ b/modules/highgui/include/opencv2/highgui.hpp @@ -739,7 +739,7 @@ location of the window windowName. @param windowName Name of the window. */ -CV_EXPORTS void saveWindowParameters(const String& windowName); +CV_EXPORTS_W void saveWindowParameters(const String& windowName); /** @brief Loads parameters of the specified window. @@ -748,7 +748,7 @@ location of the window windowName. @param windowName Name of the window. */ -CV_EXPORTS void loadWindowParameters(const String& windowName); +CV_EXPORTS_W void loadWindowParameters(const String& windowName); CV_EXPORTS int startLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* argv[]); diff --git a/modules/highgui/misc/python/test/test_window_parameters.py b/modules/highgui/misc/python/test/test_window_parameters.py new file mode 100644 index 0000000000..da156d6c5c --- /dev/null +++ b/modules/highgui/misc/python/test/test_window_parameters.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +from __future__ import print_function + +import cv2 as cv + +from tests_common import NewOpenCVTests + + +class window_parameters_test(NewOpenCVTests): + + def test_save_load_window_parameters(self): + window_name = "test_save_load_window_parameters" + try: + cv.namedWindow(window_name, cv.WINDOW_NORMAL) + except cv.error: + self.skipTest("No GUI backend available in this build/environment") + + try: + # Should not raise when the library is built with a backend that + # supports persisting window state (currently: Qt). + cv.saveWindowParameters(window_name) + cv.loadWindowParameters(window_name) + except cv.error as e: + # Expected on builds without Qt support (see NO_QT_ERR_MSG in window.cpp) + self.skipTest("saveWindowParameters/loadWindowParameters require the Qt " + "highgui backend: " + str(e)) + finally: + cv.destroyWindow(window_name) + + +if __name__ == '__main__': + NewOpenCVTests.bootstrap()