Commit 4be8fd72 authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

Merge remote-tracking branch 'origin/master'

parents 0bfa58b6 bc0d0c8f
...@@ -51,6 +51,10 @@ void cv::gpu::bilateralFilter(const GpuMat&, GpuMat&, int, float, float, int, St ...@@ -51,6 +51,10 @@ void cv::gpu::bilateralFilter(const GpuMat&, GpuMat&, int, float, float, int, St
void cv::gpu::nonLocalMeans(const GpuMat&, GpuMat&, float, int, int, int, Stream&) { throw_nogpu(); } void cv::gpu::nonLocalMeans(const GpuMat&, GpuMat&, float, int, int, int, Stream&) { throw_nogpu(); }
void cv::gpu::fastNlMeansDenoising( const GpuMat&, GpuMat&, float, int, int, Stream&) { throw_nogpu(); } void cv::gpu::fastNlMeansDenoising( const GpuMat&, GpuMat&, float, int, int, Stream&) { throw_nogpu(); }
void cv::gpu::FastNonLocalMeansDenoising::simpleMethod(const GpuMat&, GpuMat&, float, int, int, Stream&) { throw_nogpu(); }
void cv::gpu::FastNonLocalMeansDenoising::labMethod( const GpuMat&, GpuMat, float, float, int, int, Stream&) { throw_nogpu(); }
#else #else
////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
......
...@@ -15,7 +15,7 @@ PERF_TEST_P(Image_MaxCorners_QualityLevel_MinDistance_BlockSize_UseHarris, goodF ...@@ -15,7 +15,7 @@ PERF_TEST_P(Image_MaxCorners_QualityLevel_MinDistance_BlockSize_UseHarris, goodF
testing::Values( 100, 500 ), testing::Values( 100, 500 ),
testing::Values( 0.1, 0.01 ), testing::Values( 0.1, 0.01 ),
testing::Values( 3, 5 ), testing::Values( 3, 5 ),
testing::Bool() testing::Bool()
) )
) )
{ {
...@@ -28,11 +28,14 @@ PERF_TEST_P(Image_MaxCorners_QualityLevel_MinDistance_BlockSize_UseHarris, goodF ...@@ -28,11 +28,14 @@ PERF_TEST_P(Image_MaxCorners_QualityLevel_MinDistance_BlockSize_UseHarris, goodF
Mat image = imread(filename, IMREAD_GRAYSCALE); Mat image = imread(filename, IMREAD_GRAYSCALE);
if (image.empty()) if (image.empty())
FAIL() << "Unable to load source image" << filename; FAIL() << "Unable to load source image" << filename;
std::vector<Point2f> corners; std::vector<Point2f> corners;
double minDistance = 1; double minDistance = 1;
TEST_CYCLE() goodFeaturesToTrack(image, corners, maxCorners, qualityLevel, minDistance, noArray(), blockSize, useHarrisDetector); TEST_CYCLE() goodFeaturesToTrack(image, corners, maxCorners, qualityLevel, minDistance, noArray(), blockSize, useHarrisDetector);
//SANITY_CHECK(corners); if (corners.size() > 50)
corners.erase(corners.begin() + 50, corners.end());
SANITY_CHECK(corners);
} }
#include "perf_precomp.hpp" #include "perf_precomp.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
using namespace perf; using namespace perf;
using namespace testing; using namespace testing;
using std::tr1::make_tuple; using std::tr1::make_tuple;
using std::tr1::get; using std::tr1::get;
CV_ENUM(MatrixType, CV_16UC1, CV_16SC1, CV_32FC1) CV_ENUM(InterType, INTER_NEAREST, INTER_LINEAR, INTER_CUBIC, INTER_LANCZOS4)
CV_ENUM(MapType, CV_16SC2, CV_32FC1, CV_32FC2)
CV_ENUM(InterType, INTER_NEAREST, INTER_LINEAR, INTER_CUBIC, INTER_LANCZOS4) typedef TestBaseWithParam< tr1::tuple<Size, MatType, MatType, InterType> > TestRemap;
typedef TestBaseWithParam< tr1::tuple<Size, MatrixType, MapType, InterType> > TestRemap; PERF_TEST_P( TestRemap, Remap,
Combine(
PERF_TEST_P( TestRemap, Remap, Values( szVGA, sz1080p ),
Combine( Values( CV_16UC1, CV_16SC1, CV_32FC1 ),
Values( szVGA, sz1080p ), Values( CV_16SC2, CV_32FC1, CV_32FC2 ),
ValuesIn( MatrixType::all() ), ValuesIn( InterType::all() )
ValuesIn( MapType::all() ), )
ValuesIn( InterType::all() ) )
) {
) Size sz;
{ int src_type, map1_type, inter_type;
Size sz;
int src_type, map1_type, inter_type; sz = get<0>(GetParam());
src_type = get<1>(GetParam());
sz = get<0>(GetParam()); map1_type = get<2>(GetParam());
src_type = get<1>(GetParam()); inter_type = get<3>(GetParam());
map1_type = get<2>(GetParam());
inter_type = get<3>(GetParam()); Mat src(sz, src_type), dst(sz, src_type), map1(sz, map1_type), map2;
if (map1_type == CV_32FC1)
Mat src(sz, src_type), dst(sz, src_type), map1(sz, map1_type), map2; map2.create(sz, CV_32FC1);
if (map1_type == CV_32FC1) else if (inter_type != INTER_NEAREST && map1_type == CV_16SC2)
map2.create(sz, CV_32FC1); {
else if (inter_type != INTER_NEAREST && map1_type == CV_16SC2) map2.create(sz, CV_16UC1);
{ map2 = Scalar::all(0);
map2.create(sz, CV_16UC1); }
map2 = Scalar::all(0);
} RNG rng;
rng.fill(src, RNG::UNIFORM, 0, 256);
RNG rng;
rng.fill(src, RNG::UNIFORM, 0, 256); for (int j = 0; j < map1.rows; ++j)
for (int i = 0; i < map1.cols; ++i)
for (int j = 0; j < map1.rows; ++j) switch (map1_type)
for (int i = 0; i < map1.cols; ++i) {
switch (map1_type) case CV_32FC1:
{ map1.at<float>(j, i) = static_cast<float>(src.cols - i - 1);
case CV_32FC1: map2.at<float>(j, i) = static_cast<float>(j);
map1.at<float>(j, i) = static_cast<float>(src.cols - i - 1); break;
map2.at<float>(j, i) = static_cast<float>(j); case CV_32FC2:
break; map1.at<Vec2f>(j, i)[0] = static_cast<float>(src.cols - i - 1);
case CV_32FC2: map1.at<Vec2f>(j, i)[1] = static_cast<float>(j);
map1.at<Vec2f>(j, i)[0] = static_cast<float>(src.cols - i - 1); break;
map1.at<Vec2f>(j, i)[1] = static_cast<float>(j); case CV_16SC2:
break; map1.at<Vec2s>(j, i)[0] = static_cast<short>(src.cols - i - 1);
case CV_16SC2: map1.at<Vec2s>(j, i)[1] = static_cast<short>(j);
map1.at<Vec2s>(j, i)[0] = static_cast<short>(src.cols - i - 1); break;
map1.at<Vec2s>(j, i)[1] = static_cast<short>(j); default:
break; CV_Assert(0);
default: }
CV_Assert(0);
}
declare.in(src, WARMUP_RNG).out(dst).time(20);
declare.in(src, WARMUP_RNG).out(dst).time(20); TEST_CYCLE() remap(src, dst, map1, map2, inter_type);
TEST_CYCLE() remap(src, dst, map1, map2, inter_type); SANITY_CHECK(dst);
}
SANITY_CHECK(dst);
}
...@@ -9,9 +9,9 @@ using std::tr1::get; ...@@ -9,9 +9,9 @@ using std::tr1::get;
enum{HALF_SIZE=0, UPSIDE_DOWN, REFLECTION_X, REFLECTION_BOTH}; enum{HALF_SIZE=0, UPSIDE_DOWN, REFLECTION_X, REFLECTION_BOTH};
CV_ENUM(BorderMode, BORDER_CONSTANT, BORDER_REPLICATE); CV_ENUM(BorderMode, BORDER_CONSTANT, BORDER_REPLICATE)
CV_ENUM(InterType, INTER_NEAREST, INTER_LINEAR); CV_ENUM(InterType, INTER_NEAREST, INTER_LINEAR)
CV_ENUM(RemapMode, HALF_SIZE, UPSIDE_DOWN, REFLECTION_X, REFLECTION_BOTH); CV_ENUM(RemapMode, HALF_SIZE, UPSIDE_DOWN, REFLECTION_X, REFLECTION_BOTH)
typedef TestBaseWithParam< tr1::tuple<Size, InterType, BorderMode> > TestWarpAffine; typedef TestBaseWithParam< tr1::tuple<Size, InterType, BorderMode> > TestWarpAffine;
typedef TestBaseWithParam< tr1::tuple<Size, InterType, BorderMode> > TestWarpPerspective; typedef TestBaseWithParam< tr1::tuple<Size, InterType, BorderMode> > TestWarpPerspective;
...@@ -164,5 +164,7 @@ PERF_TEST(Transform, getPerspectiveTransform) ...@@ -164,5 +164,7 @@ PERF_TEST(Transform, getPerspectiveTransform)
{ {
transformCoefficient = getPerspectiveTransform(source, destination); transformCoefficient = getPerspectiveTransform(source, destination);
} }
SANITY_CHECK(transformCoefficient, 1e-5);
} }
...@@ -90,7 +90,7 @@ private: ...@@ -90,7 +90,7 @@ private:
\*****************************************************************************************/ \*****************************************************************************************/
#define CV_ENUM(class_name, ...) \ #define CV_ENUM(class_name, ...) \
class CV_EXPORTS class_name {\ namespace { class CV_EXPORTS class_name {\
public:\ public:\
class_name(int val = 0) : _val(val) {}\ class_name(int val = 0) : _val(val) {}\
operator int() const {return _val;}\ operator int() const {return _val;}\
...@@ -116,12 +116,12 @@ public:\ ...@@ -116,12 +116,12 @@ public:\
private: class_name *_begin, *_end;\ private: class_name *_begin, *_end;\
};\ };\
static Container all(){\ static Container all(){\
static class_name vals[] = {__VA_ARGS__};\ static int vals[] = {__VA_ARGS__};\
return Container(vals, sizeof(vals)/sizeof(vals[0]));\ return Container((class_name*)vals, sizeof(vals)/sizeof(vals[0]));\
}\ }\
private: int _val;\ private: int _val;\
};\ };\
inline void PrintTo(const class_name& t, std::ostream* os) { t.PrintTo(os); } inline void PrintTo(const class_name& t, std::ostream* os) { t.PrintTo(os); } }
#define CV_FLAGS(class_name, ...) \ #define CV_FLAGS(class_name, ...) \
class CV_EXPORTS class_name {\ class CV_EXPORTS class_name {\
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment