mirror of
https://github.com/opencv/opencv.git
synced 2024-11-24 03:00:14 +08:00
Fixed asserts in fillPoly.
This commit is contained in:
parent
333054e05e
commit
9dee2c6e67
21
modules/imgproc/misc/python/test/test_imgproc.py
Normal file
21
modules/imgproc/misc/python/test/test_imgproc.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import cv2 as cv
|
||||||
|
|
||||||
|
from tests_common import NewOpenCVTests
|
||||||
|
|
||||||
|
class Imgproc_Tests(NewOpenCVTests):
|
||||||
|
|
||||||
|
def test_python_986(self):
|
||||||
|
cntls = []
|
||||||
|
img = np.zeros((100,100,3), dtype=np.uint8)
|
||||||
|
color = (0,0,0)
|
||||||
|
cnts = np.array(cntls, dtype=np.int32).reshape((1, -1, 2))
|
||||||
|
try:
|
||||||
|
cv.fillPoly(img, cnts, color)
|
||||||
|
assert False
|
||||||
|
except:
|
||||||
|
assert True
|
@ -2044,8 +2044,11 @@ void fillPoly( InputOutputArray _img, const Point** pts, const int* npts, int nc
|
|||||||
edges.reserve( total + 1 );
|
edges.reserve( total + 1 );
|
||||||
for (i = 0; i < ncontours; i++)
|
for (i = 0; i < ncontours; i++)
|
||||||
{
|
{
|
||||||
std::vector<Point2l> _pts(pts[i], pts[i] + npts[i]);
|
if (npts[i] > 0 && pts[i])
|
||||||
CollectPolyEdges(img, _pts.data(), npts[i], edges, buf, line_type, shift, offset);
|
{
|
||||||
|
std::vector<Point2l> _pts(pts[i], pts[i] + npts[i]);
|
||||||
|
CollectPolyEdges(img, _pts.data(), npts[i], edges, buf, line_type, shift, offset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FillEdgeCollection(img, edges, buf, line_type);
|
FillEdgeCollection(img, edges, buf, line_type);
|
||||||
@ -2430,7 +2433,7 @@ void cv::fillPoly(InputOutputArray img, InputArrayOfArrays pts,
|
|||||||
for( i = 0; i < ncontours; i++ )
|
for( i = 0; i < ncontours; i++ )
|
||||||
{
|
{
|
||||||
Mat p = pts.getMat(manyContours ? i : -1);
|
Mat p = pts.getMat(manyContours ? i : -1);
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user