porting polylines with empty vector<Point>
from 2.4 to master
This commit is contained in:
parent
755527a90a
commit
d2409d12c6
@ -2229,7 +2229,10 @@ void cv::polylines(InputOutputArray _img, InputArrayOfArrays pts,
|
|||||||
{
|
{
|
||||||
Mat p = pts.getMat(manyContours ? i : -1);
|
Mat p = pts.getMat(manyContours ? i : -1);
|
||||||
if( p.total() == 0 )
|
if( p.total() == 0 )
|
||||||
|
{
|
||||||
|
npts[i] = 0;
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
CV_Assert(p.checkVector(2, CV_32S) >= 0);
|
CV_Assert(p.checkVector(2, CV_32S) >= 0);
|
||||||
ptsptr[i] = p.ptr<Point>();
|
ptsptr[i] = p.ptr<Point>();
|
||||||
npts[i] = p.rows*p.cols*p.channels()/2;
|
npts[i] = p.rows*p.cols*p.channels()/2;
|
||||||
|
@ -410,4 +410,23 @@ TEST(Core_Drawing, _914)
|
|||||||
ASSERT_EQ( (3*rows + cols)*3 - 3*9, pixelsDrawn);
|
ASSERT_EQ( (3*rows + cols)*3 - 3*9, pixelsDrawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Core_Drawing, polylines_empty)
|
||||||
|
{
|
||||||
|
Mat img(100, 100, CV_8UC1, Scalar(0));
|
||||||
|
vector<Point> pts; // empty
|
||||||
|
polylines(img, pts, false, Scalar(255));
|
||||||
|
int cnt = countNonZero(img);
|
||||||
|
ASSERT_EQ(cnt, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(Core_Drawing, polylines)
|
||||||
|
{
|
||||||
|
Mat img(100, 100, CV_8UC1, Scalar(0));
|
||||||
|
vector<Point> pts;
|
||||||
|
pts.push_back(Point(0, 0));
|
||||||
|
pts.push_back(Point(20, 0));
|
||||||
|
polylines(img, pts, false, Scalar(255));
|
||||||
|
int cnt = countNonZero(img);
|
||||||
|
ASSERT_EQ(cnt, 21);
|
||||||
|
}
|
||||||
/* End of file. */
|
/* End of file. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user