Added some assert statements to constrain the type of the input and output parameters. Convert the input set of points to vector<Point2f> before passing it to the findMinimumAreaEnclosingTriangle function.

pull/1470/head
Ovidiu Parvu 11 years ago
parent 4fce8e6b0e
commit 9902affae6
  1. 7
      modules/imgproc/src/min_enclosing_triangle.cpp

@ -273,6 +273,8 @@ void cv::minEnclosingTriangle(cv::InputArray points,
CV_OUT cv::OutputArray triangle, CV_OUT double& area) {
std::vector<cv::Point2f> resultingTriangle;
CV_Assert(triangle.getMat().depth() == CV_32F);
createConvexHull(points);
findMinEnclosingTriangle(resultingTriangle, area);
copyResultingTriangle(resultingTriangle, triangle);
@ -288,11 +290,14 @@ void cv::minEnclosingTriangle(cv::InputArray points,
*/
static void createConvexHull(cv::InputArray points) {
cv::Mat pointsMat = points.getMat();
std::vector<cv::Point2f> pointsVector;
CV_Assert((pointsMat.checkVector(2) > 0) &&
((pointsMat.depth() == CV_32F) || (pointsMat.depth() == CV_32S)));
convexHull(points, polygon, true, true);
pointsMat.convertTo(pointsVector, CV_32F);
convexHull(pointsVector, polygon, true, true);
}
//! Find the minimum enclosing triangle and its area

Loading…
Cancel
Save