From 51f7eb3a3cd9444cd2509e3fe3508338e9d040a2 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Sat, 15 Sep 2018 20:55:18 +0000 Subject: [PATCH] videoio(test): add "camera" tests - disabled due specific requirements (camera, OpenNI camera, etc) - designed for manual validation --- modules/videoio/test/test_camera.cpp | 41 ++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 modules/videoio/test/test_camera.cpp diff --git a/modules/videoio/test/test_camera.cpp b/modules/videoio/test/test_camera.cpp new file mode 100644 index 0000000000..9a7e266846 --- /dev/null +++ b/modules/videoio/test/test_camera.cpp @@ -0,0 +1,41 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +// Note: all tests here are DISABLED by default due specific requirements. +// Don't use #if 0 - these tests should be tested for compilation at least. +// +// Usage: opencv_test_videoio --gtest_also_run_disabled_tests --gtest_filter=*VideoIO_Camera** + +#include "test_precomp.hpp" + +namespace opencv_test { namespace { + +TEST(DISABLED_VideoIO_Camera, basic) +{ + VideoCapture capture(0); + ASSERT_TRUE(capture.isOpened()); + std::cout << "Camera 0 via " << capture.getBackendName() << " backend" << std::endl; + std::cout << "Frame width: " << capture.get(CAP_PROP_FRAME_WIDTH) << std::endl; + std::cout << " height: " << capture.get(CAP_PROP_FRAME_HEIGHT) << std::endl; + std::cout << "Capturing FPS: " << capture.get(CAP_PROP_FPS) << std::endl; + + const int N = 100; + Mat frame; + int64 time0 = cv::getTickCount(); + for (int i = 0; i < N; i++) + { + SCOPED_TRACE(cv::format("frame=%d", i)); + + capture >> frame; + ASSERT_FALSE(frame.empty()); + + EXPECT_GT(cvtest::norm(frame, NORM_INF), 0) << "Complete black image has been received"; + } + int64 time1 = cv::getTickCount(); + printf("Processed %d frames on %.2f FPS\n", N, (N * cv::getTickFrequency()) / (time1 - time0 + 1)); + + capture.release(); +} + +}} // namespace