Andrey, Maria and I fixed Mat::diag()
authorIlya Lysenkov <no@email>
Tue, 10 Apr 2012 13:02:58 +0000 (13:02 +0000)
committerIlya Lysenkov <no@email>
Tue, 10 Apr 2012 13:02:58 +0000 (13:02 +0000)
modules/core/include/opencv2/core/mat.hpp

index 4bd1bb7..f2f14fe 100644 (file)
@@ -319,8 +319,8 @@ inline Mat Mat::colRange(const Range& r) const
 
 inline Mat Mat::diag(const Mat& d)
 {
-    CV_Assert( d.cols == 1 );
-    Mat m(d.rows, d.rows, d.type(), Scalar(0)), md = m.diag();
+    CV_Assert( d.cols == 1 || d.rows == 1 );
+    Mat m(d.total(), d.total(), d.type(), Scalar(0)), md = m.diag();
     d.copyTo(md);
     return m;
 }