mirror of https://github.com/opencv/opencv.git
Merge pull request #18646 from qchateau:wave-auto
* stitching: add WAVE_CORRECT_AUTO * stitching: use CV_EXPORTSpull/18662/head
parent
72dfd4846e
commit
36598677cf
4 changed files with 107 additions and 1 deletions
@ -0,0 +1,50 @@ |
||||
// 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.
|
||||
|
||||
#include "test_precomp.hpp" |
||||
|
||||
namespace opencv_test { |
||||
namespace { |
||||
|
||||
detail::WaveCorrectKind correctionKind(const std::vector<UMat>& images) |
||||
{ |
||||
|
||||
Ptr<Stitcher> stitcher = Stitcher::create(Stitcher::PANORAMA); |
||||
stitcher->estimateTransform(images); |
||||
|
||||
std::vector<Mat> rmats; |
||||
auto cameras = stitcher->cameras(); |
||||
for (const auto& camera: cameras) |
||||
rmats.push_back(camera.R); |
||||
|
||||
return detail::autoDetectWaveCorrectKind(rmats); |
||||
} |
||||
|
||||
TEST(WaveCorrection, AutoWaveCorrection) |
||||
{ |
||||
std::vector<UMat> images(2); |
||||
imread(cvtest::TS::ptr()->get_data_path() + "stitching/s1.jpg").copyTo(images[0]); |
||||
imread(cvtest::TS::ptr()->get_data_path() + "stitching/s2.jpg").copyTo(images[1]); |
||||
|
||||
EXPECT_EQ(detail::WAVE_CORRECT_HORIZ, correctionKind(images)); |
||||
|
||||
std::vector<UMat> rotated_images(2); |
||||
rotate(images[0], rotated_images[0], cv::ROTATE_90_CLOCKWISE); |
||||
rotate(images[1], rotated_images[1], cv::ROTATE_90_CLOCKWISE); |
||||
|
||||
EXPECT_EQ(detail::WAVE_CORRECT_VERT, correctionKind(rotated_images)); |
||||
|
||||
rotate(images[0], rotated_images[0], cv::ROTATE_90_COUNTERCLOCKWISE); |
||||
rotate(images[1], rotated_images[1], cv::ROTATE_90_COUNTERCLOCKWISE); |
||||
|
||||
EXPECT_EQ(detail::WAVE_CORRECT_VERT, correctionKind(rotated_images)); |
||||
|
||||
rotate(images[0], rotated_images[0], cv::ROTATE_180); |
||||
rotate(images[1], rotated_images[1], cv::ROTATE_180); |
||||
|
||||
EXPECT_EQ(detail::WAVE_CORRECT_HORIZ, correctionKind(rotated_images)); |
||||
} |
||||
|
||||
} // namespace
|
||||
} // namespace opencv_test
|
Loading…
Reference in new issue