OpenCV矩形绘制功能

时间:2018-07-13 03:40:09

标签: algorithm opencv colors computer-vision

只要矩形的左上角和右下角,OpenCV有助于绘制rectangle。我想知道使用哪种算法绘制矩形,例如,我所知道的所有多边形填充算法都填充了整个多边形,即boundary fill algorithm等。
我没有发现任何颜色填充仅填充边界的算法。请写下我错过的东西或有这样的算法。

1 个答案:

答案 0 :(得分:2)

来自source code

void rectangle( InputOutputArray _img, Point pt1, Point pt2,
                const Scalar& color, int thickness,
                int lineType, int shift )
{
    CV_INSTRUMENT_REGION()
Mat img = _img.getMat();

if( lineType == CV_AA && img.depth() != CV_8U )
    lineType = 8;

CV_Assert( thickness <= MAX_THICKNESS );
CV_Assert( 0 <= shift && shift <= XY_SHIFT );

double buf[4];
scalarToRawData(color, buf, img.type(), 0);

Point2l pt[4];

pt[0] = pt1;
pt[1].x = pt2.x;
pt[1].y = pt1.y;
pt[2] = pt2;
pt[3].x = pt1.x;
pt[3].y = pt2.y;

if( thickness >= 0 )
    PolyLine( img, pt, 4, true, buf, thickness, lineType, shift );
else
    FillConvexPoly( img, pt, 4, buf, lineType, shift );
}

在这里,我们可以看到,如果传递了厚度,它将使用PolyLine绘制矩形。