mirror of
https://github.com/opencv/opencv.git
synced 2024-12-02 16:00:17 +08:00
e845184843
* #1538 from StevenPuttemans:bugfix_3283 * #1545 from alalek:ocl_test_fix_rng * #1551 from alalek:cmake_install_win * #1570 from ilya-lavrenov:ipp_warn_fix * #1573 from alalek:perf_simple_strategy * #1574 from alalek:svm_workaround * #1576 from alalek:ocl_fix_cl_double * #1577 from ilya-lavrenov:ocl_setto_opencl12 * #1578 from asmorkalov:android_fd_cp_fix * #1579 from ilya-lavrenov:ocl_norm * #1582 from sperrholz:ocl-arithm-additions * #1586 from ilya-lavrenov:ocl_setto_win_fix * #1589 from ilya-lavrenov:pr1582_fix * #1591 from alalek:ocl_remove_cl_hpp_h * #1592 from alalek:ocl_program_cache_update * #1593 from ilya-lavrenov:ocl_war_on_double * #1594 from ilya-lavrenov:ocl_perf * #1595 from alalek:cl_code_cleanup * #1596 from alalek:test_fix_run_py * #1597 from alalek:ocl_fix_cleanup * #1598 from alalek:ocl_fix_build_mac * #1599 from ilya-lavrenov:ocl_mac_kernel_warnings * #1601 from ilya-lavrenov:ocl_fix_tvl1_and_sparse * #1602 from alalek:ocl_test_dump_info * #1603 from ilya-lavrenov:ocl_disable_svm_noblas * #1605 from alalek:ocl_fixes * #1606 from ilya-lavrenov:ocl_imgproc * #1607 from ilya-lavrenov:ocl_fft_cleanup * #1608 from alalek:fix_warn_upd_haar * #1609 from ilya-lavrenov:ocl_some_optimization * #1610 from alalek:ocl_fix_perf_kalman * #1612 from alalek:ocl_fix_string_info * #1614 from ilya-lavrenov:ocl_svm_misprint * #1616 from ilya-lavrenov:ocl_cvtColor * #1617 from ilya-lavrenov:ocl_info * #1622 from a0byte:2.4 * #1625 from ilya-lavrenov:to_string Conflicts: cmake/OpenCVConfig.cmake cmake/OpenCVDetectPython.cmake cmake/OpenCVGenConfig.cmake modules/core/CMakeLists.txt modules/nonfree/src/surf.ocl.cpp modules/ocl/include/opencv2/ocl/ocl.hpp modules/ocl/include/opencv2/ocl/private/util.hpp modules/ocl/perf/main.cpp modules/ocl/src/arithm.cpp modules/ocl/src/cl_operations.cpp modules/ocl/src/cl_programcache.cpp modules/ocl/src/color.cpp modules/ocl/src/fft.cpp modules/ocl/src/filtering.cpp modules/ocl/src/gemm.cpp modules/ocl/src/haar.cpp modules/ocl/src/imgproc.cpp modules/ocl/src/matrix_operations.cpp modules/ocl/src/pyrlk.cpp modules/ocl/src/split_merge.cpp modules/ocl/src/svm.cpp modules/ocl/test/main.cpp modules/ocl/test/test_fft.cpp modules/ocl/test/test_moments.cpp modules/ocl/test/test_objdetect.cpp modules/ocl/test/test_optflow.cpp modules/ocl/test/utility.hpp modules/python/CMakeLists.txt modules/ts/include/opencv2/ts.hpp modules/ts/src/ts_perf.cpp samples/android/face-detection/jni/DetectionBasedTracker_jni.cpp
68 lines
1.8 KiB
C++
68 lines
1.8 KiB
C++
#include "test_precomp.hpp"
|
|
#include <iomanip>
|
|
|
|
#ifdef HAVE_OPENCL
|
|
|
|
using namespace cv;
|
|
using namespace cv::ocl;
|
|
using namespace cvtest;
|
|
using namespace testing;
|
|
PARAM_TEST_CASE(MomentsTest, MatType, bool)
|
|
{
|
|
int type;
|
|
cv::Mat mat1;
|
|
bool test_contours;
|
|
|
|
virtual void SetUp()
|
|
{
|
|
type = GET_PARAM(0);
|
|
test_contours = GET_PARAM(1);
|
|
cv::Size size(10*MWIDTH, 10*MHEIGHT);
|
|
mat1 = randomMat(size, type, 5, 16, false);
|
|
}
|
|
|
|
void Compare(Moments& cpu_moments, Moments& gpu_moments)
|
|
{
|
|
Mat gpu_dst, cpu_dst;
|
|
HuMoments(cpu_moments, cpu_dst);
|
|
HuMoments(gpu_moments, gpu_dst);
|
|
EXPECT_MAT_NEAR(gpu_dst, cpu_dst, .5);
|
|
}
|
|
|
|
};
|
|
|
|
|
|
OCL_TEST_P(MomentsTest, Mat)
|
|
{
|
|
bool binaryImage = 0;
|
|
|
|
for(int j = 0; j < LOOP_TIMES; j++)
|
|
{
|
|
if(test_contours)
|
|
{
|
|
Mat src = readImage( "cv/shared/pic3.png", IMREAD_GRAYSCALE );
|
|
ASSERT_FALSE(src.empty());
|
|
Mat canny_output;
|
|
vector<vector<Point> > contours;
|
|
vector<Vec4i> hierarchy;
|
|
Canny( src, canny_output, 100, 200, 3 );
|
|
findContours( canny_output, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0) );
|
|
for( size_t i = 0; i < contours.size(); i++ )
|
|
{
|
|
Moments m = moments( contours[i], false );
|
|
Moments dm = ocl::ocl_moments( contours[i], false );
|
|
Compare(m, dm);
|
|
}
|
|
}
|
|
cv::_InputArray _array(mat1);
|
|
cv::Moments CvMom = cv::moments(_array, binaryImage);
|
|
cv::Moments oclMom = cv::ocl::ocl_moments(_array, binaryImage);
|
|
|
|
Compare(CvMom, oclMom);
|
|
}
|
|
}
|
|
INSTANTIATE_TEST_CASE_P(OCL_ImgProc, MomentsTest, Combine(
|
|
Values(CV_8UC1, CV_16UC1, CV_16SC1, CV_64FC1), Values(true,false)));
|
|
|
|
#endif // HAVE_OPENCL
|