fixed gpu::graphcut preconditions
authorAlexey Spizhevoy <no@email>
Thu, 24 Mar 2011 12:22:23 +0000 (12:22 +0000)
committerAlexey Spizhevoy <no@email>
Thu, 24 Mar 2011 12:22:23 +0000 (12:22 +0000)
modules/gpu/src/graphcuts.cpp

index 4464d5a..87fbd56 100644 (file)
@@ -50,18 +50,22 @@ void cv::gpu::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Gpu
 \r
 void cv::gpu::graphcut(GpuMat& terminals, GpuMat& leftTransp, GpuMat& rightTransp, GpuMat& top, GpuMat& bottom, GpuMat& labels, GpuMat& buf)\r
 {\r
-    CV_Assert(leftTransp.type() == CV_32S && rightTransp.type() == CV_32S);\r
-    CV_Assert(terminals.type() == CV_32S && bottom.type() == CV_32S && top.type() == CV_32S);\r
-    CV_Assert(terminals.size() == leftTransp.size());\r
-    CV_Assert(terminals.size() == rightTransp.size());\r
-    CV_Assert(terminals.size() == top.size() && terminals.size() == bottom.size());\r
-    CV_Assert(top.step == bottom.step && top.step == terminals.step && rightTransp.step == leftTransp.step);\r
-\r
-    labels.create(terminals.size(), CV_8U);\r
+    Size src_size = terminals.size();\r
+    CV_Assert(terminals.type() == CV_32S);\r
+    CV_Assert(leftTransp.size() == Size(src_size.height, src_size.width));\r
+    CV_Assert(leftTransp.type() == CV_32S);\r
+    CV_Assert(rightTransp.size() == Size(src_size.height, src_size.width));\r
+    CV_Assert(rightTransp.type() == CV_32S);\r
+    CV_Assert(top.size() == src_size);\r
+    CV_Assert(top.type() == CV_32S);\r
+    CV_Assert(bottom.size() == src_size);\r
+    CV_Assert(bottom.type() == CV_32S);\r
+\r
+    labels.create(src_size, CV_8U);\r
 \r
     NppiSize sznpp;\r
-    sznpp.width = terminals.cols;\r
-    sznpp.height = terminals.rows;\r
+    sznpp.width = src_size.width;\r
+    sznpp.height = src_size.height;\r
 \r
     int bufsz;\r
     nppSafeCall( nppiGraphcutGetSize(sznpp, &bufsz) );\r