cv::findContours: Check if type of output data structure is right to store contours...
authorArtur Wieczorek <artwik@wp.pl>
Sun, 27 Apr 2014 17:22:29 +0000 (19:22 +0200)
committerArtur Wieczorek <artwik@wp.pl>
Sun, 27 Apr 2014 17:22:29 +0000 (19:22 +0200)
modules/imgproc/src/contours.cpp

index 797f8c5..4c77dd2 100644 (file)
@@ -1703,6 +1703,10 @@ cvFindContours( void*  img,  CvMemStorage*  storage,
 void cv::findContours( InputOutputArray _image, OutputArrayOfArrays _contours,
                    OutputArray _hierarchy, int mode, int method, Point offset )
 {
+    // Sanity check: output must be of type vector<vector<Point>>
+    CV_Assert( _contours.kind() == _InputArray::STD_VECTOR_VECTOR &&
+               _contours.channels() == 2 && _contours.depth() == CV_32S );
+
     Mat image = _image.getMat();
     MemStorage storage(cvCreateMemStorage());
     CvMat _cimage = image;