From 41afe546966ada9aa0fc15aca82ba1430d7515d2 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Mon, 1 Dec 2014 14:30:05 +0100 Subject: [PATCH] Fix determining bounding box of the edge collection in FillEdgeCollection(). There is necessary to account also x-coordinate of the end of the edge when determining bounding box of the edge collection. --- modules/imgproc/src/drawing.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/imgproc/src/drawing.cpp b/modules/imgproc/src/drawing.cpp index a0dbb233b..e498d0136 100644 --- a/modules/imgproc/src/drawing.cpp +++ b/modules/imgproc/src/drawing.cpp @@ -1190,10 +1190,15 @@ FillEdgeCollection( Mat& img, std::vector& edges, const void* color ) { PolyEdge& e1 = edges[i]; assert( e1.y0 < e1.y1 ); + // Determine x-coordinate of the end of the edge. + // (This is not necessary x-coordinate of any vertex in the array.) + int x1 = e1.x + (e1.y1 - e1.y0) * e1.dx; y_min = std::min( y_min, e1.y0 ); y_max = std::max( y_max, e1.y1 ); x_min = std::min( x_min, e1.x ); x_max = std::max( x_max, e1.x ); + x_min = std::min( x_min, x1 ); + x_max = std::max( x_max, x1 ); } if( y_max < 0 || y_min >= size.height || x_max < 0 || x_min >= (size.width<