added perf test for gpu::erode, fixed docs, refactored perf. sample
authorAlexey Spizhevoy <no@email>
Fri, 4 Feb 2011 08:16:09 +0000 (08:16 +0000)
committerAlexey Spizhevoy <no@email>
Fri, 4 Feb 2011 08:16:09 +0000 (08:16 +0000)
doc/gpu_initialization.tex
samples/gpu/performance/performance.h
samples/gpu/performance/tests.cpp
samples/gpu/stereo_multi.cpp

index 4018e30..cc240a1 100644 (file)
@@ -113,7 +113,7 @@ Returns true if the device has the given GPU feature, otherwise false.
 
 \cvdefCpp{bool DeviceInfo::has(GpuFeature feature);}
 \begin{description}
-\cvarg{feature}{Feature to be checked. See \hyperref[cpp.gpu.GpuFeature]{gpu::GpuFeature}.}
+\cvarg{feature}{Feature to be checked. See \hyperref[cpp.gpu.GpuFeature]{cv::gpu::GpuFeature}.}
 \end{description}
 
 
@@ -131,7 +131,7 @@ This class provides functionality (as set of static methods) for checking which
 The following method checks whether the module was built with the support of the given feature:
 \cvdefCpp{static bool builtWith(GpuFeature feature);}
 \begin{description}
-\cvarg{feature}{Feature to be checked. See \hyperref[cpp.gpu.GpuFeature]{gpu::GpuFeature}.}
+\cvarg{feature}{Feature to be checked. See \hyperref[cpp.gpu.GpuFeature]{cv::gpu::GpuFeature}.}
 \end{description}
 
 There are a set of methods for checking whether the module contains intermediate (PTX) or binary GPU code for the given architecture(s):
index 1bfcff8..fccb561 100644 (file)
@@ -125,7 +125,6 @@ private:
     void name##_test::run()\r
 \r
 #define SUBTEST TestSystem::instance().subtest()\r
-#define DESCRIPTION TestSystem::instance().subtest()\r
 #define CPU_ON TestSystem::instance().cpuOn()\r
 #define GPU_ON TestSystem::instance().gpuOn()\r
 #define CPU_OFF TestSystem::instance().cpuOff()\r
index 81d78a7..8f9d89b 100644 (file)
@@ -167,32 +167,32 @@ TEST(cornerHarris)
 }\r
 \r
 \r
-//TEST(integral)\r
-//{\r
-//    Mat src, sum;\r
-//    gpu::GpuMat d_src, d_sum, d_buf;\r
-//\r
-//    int size = 4000;\r
-//\r
-//    gen(src, size, size, CV_8U, 0, 256);\r
-//    sum.create(size + 1, size + 1, CV_32S);\r
-//\r
-//    d_src = src;\r
-//    d_sum.create(size + 1, size + 1, CV_32S);\r
-//\r
-//    for (int i = 0; i < 5; ++i)\r
-//    {\r
-//        SUBTEST << "size " << size << ", 8U";\r
-//\r
-//        CPU_ON;\r
-//        integral(src, sum);\r
-//        CPU_OFF;\r
-//\r
-//        GPU_ON;\r
-//        gpu::integralBuffered(d_src, d_sum, d_buf);\r
-//        GPU_OFF;\r
-//    }\r
-//}\r
+TEST(integral)\r
+{\r
+    Mat src, sum;\r
+    gpu::GpuMat d_src, d_sum, d_buf;\r
+\r
+    int size = 4000;\r
+\r
+    gen(src, size, size, CV_8U, 0, 256);\r
+    sum.create(size + 1, size + 1, CV_32S);\r
+\r
+    d_src = src;\r
+    d_sum.create(size + 1, size + 1, CV_32S);\r
+\r
+    for (int i = 0; i < 5; ++i)\r
+    {\r
+        SUBTEST << "size " << size << ", 8U";\r
+\r
+        CPU_ON;\r
+        integral(src, sum);\r
+        CPU_OFF;\r
+\r
+        GPU_ON;\r
+        gpu::integralBuffered(d_src, d_sum, d_buf);\r
+        GPU_OFF;\r
+    }\r
+}\r
 \r
 \r
 TEST(norm)\r
@@ -653,4 +653,31 @@ TEST(cvtColor)
     \r
     cv::swap(src, dst);\r
     d_src.swap(d_dst);\r
+}\r
+\r
+\r
+TEST(erode)\r
+{\r
+    Mat src, dst, ker;\r
+    gpu::GpuMat d_src, d_dst;\r
+\r
+    for (int size = 2000; size <= 4000; size += 1000)\r
+    {\r
+        SUBTEST << "size " << size;\r
+\r
+        gen(src, size, size, CV_8UC4, Scalar::all(0), Scalar::all(256));\r
+        ker = getStructuringElement(MORPH_RECT, Size(3, 3));\r
+        dst.create(src.size(), src.type());\r
+\r
+        CPU_ON;\r
+        erode(src, dst, ker);\r
+        CPU_OFF;\r
+\r
+        d_src = src;\r
+        d_dst.create(d_src.size(), d_src.type());\r
+\r
+        GPU_ON;\r
+        gpu::erode(d_src, d_dst, ker);\r
+        GPU_OFF;\r
+    }\r
 }
\ No newline at end of file
index a380e5b..58d88c6 100644 (file)
@@ -60,10 +60,13 @@ void inline contextOff()
     safeCall(cuCtxPopCurrent(&prev_context));\r
 }\r
 \r
+// GPUs data\r
 GpuMat d_left[2];\r
 GpuMat d_right[2];\r
 StereoBM_GPU* bm[2];\r
 GpuMat d_result[2];\r
+\r
+// CPU result\r
 Mat result;\r
 \r
 int main(int argc, char** argv)\r