Options
All
  • Public
  • Public/Protected
  • All
Menu

External module "types/opencv/imgproc_draw"

Index

Type aliases

HersheyFonts

HersheyFonts: any

Only a subset of Hershey fonts are supported

LineTypes

LineTypes: any

Only a subset of Hershey fonts are supported

MarkerTypes

MarkerTypes: any

Only a subset of Hershey fonts are supported

Variables

Const FILLED

FILLED: LineTypes

Const FONT_HERSHEY_COMPLEX

FONT_HERSHEY_COMPLEX: HersheyFonts

Const FONT_HERSHEY_COMPLEX_SMALL

FONT_HERSHEY_COMPLEX_SMALL: HersheyFonts

Const FONT_HERSHEY_DUPLEX

FONT_HERSHEY_DUPLEX: HersheyFonts

Const FONT_HERSHEY_PLAIN

FONT_HERSHEY_PLAIN: HersheyFonts

Const FONT_HERSHEY_SCRIPT_COMPLEX

FONT_HERSHEY_SCRIPT_COMPLEX: HersheyFonts

Const FONT_HERSHEY_SCRIPT_SIMPLEX

FONT_HERSHEY_SCRIPT_SIMPLEX: HersheyFonts

Const FONT_HERSHEY_SIMPLEX

FONT_HERSHEY_SIMPLEX: HersheyFonts

Const FONT_HERSHEY_TRIPLEX

FONT_HERSHEY_TRIPLEX: HersheyFonts

Const FONT_ITALIC

FONT_ITALIC: HersheyFonts

Const LINE_4

LINE_4: LineTypes

Const LINE_8

LINE_8: LineTypes

Const LINE_AA

LINE_AA: LineTypes

Const MARKER_CROSS

MARKER_CROSS: MarkerTypes

Const MARKER_DIAMOND

MARKER_DIAMOND: MarkerTypes

Const MARKER_SQUARE

MARKER_SQUARE: MarkerTypes

Const MARKER_STAR

MARKER_STAR: MarkerTypes

Const MARKER_TILTED_CROSS

MARKER_TILTED_CROSS: MarkerTypes

Const MARKER_TRIANGLE_DOWN

MARKER_TRIANGLE_DOWN: MarkerTypes

Const MARKER_TRIANGLE_UP

MARKER_TRIANGLE_UP: MarkerTypes

Functions

arrowedLine

  • arrowedLine(img: InputOutputArray, pt1: Point, pt2: Point, color: any, thickness?: int, line_type?: int, shift?: int, tipLength?: double): void
  • The function [cv::arrowedLine] draws an arrow between pt1 and pt2 points in the image. See also [line].

    Parameters

    • img: InputOutputArray

      Image.

    • pt1: Point

      The point the arrow starts from.

    • pt2: Point

      The point the arrow points to.

    • color: any

      Line color.

    • Optional thickness: int

      Line thickness.

    • Optional line_type: int

      Type of the line. See LineTypes

    • Optional shift: int

      Number of fractional bits in the point coordinates.

    • Optional tipLength: double

      The length of the arrow tip in relation to the arrow length

    Returns void

circle

  • circle(img: InputOutputArray, center: Point, radius: int, color: any, thickness?: int, lineType?: int, shift?: int): void
  • The function [cv::circle] draws a simple or filled circle with a given center and radius.

    Parameters

    • img: InputOutputArray

      Image where the circle is drawn.

    • center: Point

      Center of the circle.

    • radius: int

      Radius of the circle.

    • color: any

      Circle color.

    • Optional thickness: int

      Thickness of the circle outline, if positive. Negative values, like FILLED, mean that a filled circle is to be drawn.

    • Optional lineType: int

      Type of the circle boundary. See LineTypes

    • Optional shift: int

      Number of fractional bits in the coordinates of the center and in the radius value.

    Returns void

clipLine

  • clipLine(imgSize: Size, pt1: any, pt2: any): bool
  • clipLine(imgSize: Size2l, pt1: any, pt2: any): bool
  • clipLine(imgRect: Rect, pt1: any, pt2: any): bool
  • The function [cv::clipLine] calculates a part of the line segment that is entirely within the specified rectangle. it returns false if the line segment is completely outside the rectangle. Otherwise, it returns true .

    Parameters

    • imgSize: Size

      Image size. The image rectangle is Rect(0, 0, imgSize.width, imgSize.height) .

    • pt1: any

      First line point.

    • pt2: any

      Second line point.

    Returns bool

  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • imgSize: Size2l

      Image size. The image rectangle is Rect(0, 0, imgSize.width, imgSize.height) .

    • pt1: any

      First line point.

    • pt2: any

      Second line point.

    Returns bool

  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • imgRect: Rect

      Image rectangle.

    • pt1: any

      First line point.

    • pt2: any

      Second line point.

    Returns bool

drawContours

  • drawContours(image: InputOutputArray, contours: InputArrayOfArrays, contourIdx: int, color: any, thickness?: int, lineType?: int, hierarchy?: InputArray, maxLevel?: int, offset?: Point): void
  • The function draws contour outlines in the image if $\\texttt{thickness} \\ge 0$ or fills the area bounded by the contours if $\\texttt{thickness}<0$ . The example below shows how to retrieve connected components from the binary image and label them: :

    #include "opencv2/imgproc.hpp"
    #include "opencv2/highgui.hpp"
    
    using namespace cv;
    using namespace std;
    
    int main( int argc, char** argv )
    {
        Mat src;
        // the first command-line parameter must be a filename of the binary
        // (black-n-white) image
        if( argc != 2 || !(src=imread(argv[1], 0)).data)
            return -1;
    
        Mat dst = Mat::zeros(src.rows, src.cols, CV_8UC3);
    
        src = src > 1;
        namedWindow( "Source", 1 );
        imshow( "Source", src );
    
        vector<vector<Point> > contours;
        vector<Vec4i> hierarchy;
    
        findContours( src, contours, hierarchy,
            RETR_CCOMP, CHAIN_APPROX_SIMPLE );
    
        // iterate through all the top-level contours,
        // draw each connected component with its own random color
        int idx = 0;
        for( ; idx >= 0; idx = hierarchy[idx][0] )
        {
            Scalar color( rand()&255, rand()&255, rand()&255 );
            drawContours( dst, contours, idx, color, FILLED, 8, hierarchy );
        }
    
        namedWindow( "Components", 1 );
        imshow( "Components", dst );
        waitKey(0);
    }

    When thickness=[FILLED], the function is designed to handle connected components with holes correctly even when no hierarchy date is provided. This is done by analyzing all the outlines together using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved contours. In order to solve this problem, you need to call [drawContours] separately for each sub-group of contours, or iterate over the collection using contourIdx parameter.

    Parameters

    • image: InputOutputArray

      Destination image.

    • contours: InputArrayOfArrays

      All the input contours. Each contour is stored as a point vector.

    • contourIdx: int

      Parameter indicating a contour to draw. If it is negative, all the contours are drawn.

    • color: any

      Color of the contours.

    • Optional thickness: int

      Thickness of lines the contours are drawn with. If it is negative (for example, thickness=FILLED ), the contour interiors are drawn.

    • Optional lineType: int

      Line connectivity. See LineTypes

    • Optional hierarchy: InputArray

      Optional information about hierarchy. It is only needed if you want to draw only some of the contours (see maxLevel ).

    • Optional maxLevel: int

      Maximal level for drawn contours. If it is 0, only the specified contour is drawn. If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This parameter is only taken into account when there is hierarchy available.

    • Optional offset: Point

      Optional contour shift parameter. Shift all the drawn contours by the specified $\texttt{offset}=(dx,dy)$ .

    Returns void

drawMarker

  • drawMarker(img: InputOutputArray, position: Point, color: any, markerType?: int, markerSize?: int, thickness?: int, line_type?: int): void
  • The function [cv::drawMarker] draws a marker on a given position in the image. For the moment several marker types are supported, see [MarkerTypes] for more information.

    Parameters

    • img: InputOutputArray

      Image.

    • position: Point

      The point where the crosshair is positioned.

    • color: any

      Line color.

    • Optional markerType: int

      The specific type of marker you want to use, see MarkerTypes

    • Optional markerSize: int

      The length of the marker axis [default = 20 pixels]

    • Optional thickness: int

      Line thickness.

    • Optional line_type: int

      Type of the line, See LineTypes

    Returns void

ellipse

  • ellipse(img: InputOutputArray, center: Point, axes: Size, angle: double, startAngle: double, endAngle: double, color: any, thickness?: int, lineType?: int, shift?: int): void
  • ellipse(img: InputOutputArray, box: any, color: any, thickness?: int, lineType?: int): void
  • The function [cv::ellipse] with more parameters draws an ellipse outline, a filled ellipse, an elliptic arc, or a filled ellipse sector. The drawing code uses general parametric form. A piecewise-linear curve is used to approximate the elliptic arc boundary. If you need more control of the ellipse rendering, you can retrieve the curve using [ellipse2Poly] and then render it with [polylines] or fill it with [fillPoly]. If you use the first variant of the function and want to draw the whole ellipse, not an arc, pass startAngle=0 and endAngle=360. If startAngle is greater than endAngle, they are swapped. The figure below explains the meaning of the parameters to draw the blue arc.

    Parameters

    • img: InputOutputArray

      Image.

    • center: Point

      Center of the ellipse.

    • axes: Size

      Half of the size of the ellipse main axes.

    • angle: double

      Ellipse rotation angle in degrees.

    • startAngle: double

      Starting angle of the elliptic arc in degrees.

    • endAngle: double

      Ending angle of the elliptic arc in degrees.

    • color: any

      Ellipse color.

    • Optional thickness: int

      Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that a filled ellipse sector is to be drawn.

    • Optional lineType: int

      Type of the ellipse boundary. See LineTypes

    • Optional shift: int

      Number of fractional bits in the coordinates of the center and values of axes.

    Returns void

  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • img: InputOutputArray

      Image.

    • box: any

      Alternative ellipse representation via RotatedRect. This means that the function draws an ellipse inscribed in the rotated rectangle.

    • color: any

      Ellipse color.

    • Optional thickness: int

      Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that a filled ellipse sector is to be drawn.

    • Optional lineType: int

      Type of the ellipse boundary. See LineTypes

    Returns void

ellipse2Poly

  • ellipse2Poly(center: Point, axes: Size, angle: int, arcStart: int, arcEnd: int, delta: int, pts: any): void
  • ellipse2Poly(center: Point2d, axes: Size2d, angle: int, arcStart: int, arcEnd: int, delta: int, pts: any): void
  • The function ellipse2Poly computes the vertices of a polyline that approximates the specified elliptic arc. It is used by [ellipse]. If arcStart is greater than arcEnd, they are swapped.

    Parameters

    • center: Point

      Center of the arc.

    • axes: Size

      Half of the size of the ellipse main axes. See ellipse for details.

    • angle: int

      Rotation angle of the ellipse in degrees. See ellipse for details.

    • arcStart: int

      Starting angle of the elliptic arc in degrees.

    • arcEnd: int

      Ending angle of the elliptic arc in degrees.

    • delta: int

      Angle between the subsequent polyline vertices. It defines the approximation accuracy.

    • pts: any

      Output vector of polyline vertices.

    Returns void

  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • center: Point2d

      Center of the arc.

    • axes: Size2d

      Half of the size of the ellipse main axes. See ellipse for details.

    • angle: int

      Rotation angle of the ellipse in degrees. See ellipse for details.

    • arcStart: int

      Starting angle of the elliptic arc in degrees.

    • arcEnd: int

      Ending angle of the elliptic arc in degrees.

    • delta: int

      Angle between the subsequent polyline vertices. It defines the approximation accuracy.

    • pts: any

      Output vector of polyline vertices.

    Returns void

fillConvexPoly

  • fillConvexPoly(img: InputOutputArray, pts: any, npts: int, color: any, lineType?: int, shift?: int): void
  • fillConvexPoly(img: InputOutputArray, points: InputArray, color: any, lineType?: int, shift?: int): void
  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • img: InputOutputArray
    • pts: any
    • npts: int
    • color: any
    • Optional lineType: int
    • Optional shift: int

    Returns void

  • The function [cv::fillConvexPoly] draws a filled convex polygon. This function is much faster than the function [fillPoly] . It can fill not only convex polygons but any monotonic polygon without self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line) twice at the most (though, its top-most and/or the bottom edge could be horizontal).

    Parameters

    • img: InputOutputArray

      Image.

    • points: InputArray

      Polygon vertices.

    • color: any

      Polygon color.

    • Optional lineType: int

      Type of the polygon boundaries. See LineTypes

    • Optional shift: int

      Number of fractional bits in the vertex coordinates.

    Returns void

fillPoly

  • fillPoly(img: InputOutputArray, pts: any, npts: any, ncontours: int, color: any, lineType?: int, shift?: int, offset?: Point): void
  • fillPoly(img: InputOutputArray, pts: InputArrayOfArrays, color: any, lineType?: int, shift?: int, offset?: Point): void
  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • img: InputOutputArray
    • pts: any
    • npts: any
    • ncontours: int
    • color: any
    • Optional lineType: int
    • Optional shift: int
    • Optional offset: Point

    Returns void

  • The function [cv::fillPoly] fills an area bounded by several polygonal contours. The function can fill complex areas, for example, areas with holes, contours with self-intersections (some of their parts), and so forth.

    Parameters

    • img: InputOutputArray

      Image.

    • pts: InputArrayOfArrays

      Array of polygons where each polygon is represented as an array of points.

    • color: any

      Polygon color.

    • Optional lineType: int

      Type of the polygon boundaries. See LineTypes

    • Optional shift: int

      Number of fractional bits in the vertex coordinates.

    • Optional offset: Point

      Optional offset of all points of the contours.

    Returns void

getFontScaleFromHeight

  • getFontScaleFromHeight(fontFace: any, pixelHeight: any, thickness?: any): double
  • The fontSize to use for [cv::putText]

    [cv::putText]

    Parameters

    • fontFace: any

      Font to use, see cv::HersheyFonts.

    • pixelHeight: any

      Pixel height to compute the fontScale for

    • Optional thickness: any

      Thickness of lines used to render the text.See putText for details.

    Returns double

getTextSize

  • getTextSize(text: any, fontFace: int, fontScale: double, thickness: int, baseLine: any): Size
  • The function [cv::getTextSize] calculates and returns the size of a box that contains the specified text. That is, the following code renders some text, the tight box surrounding it, and the baseline: :

    String text = "Funny text inside the box";
    int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;
    double fontScale = 2;
    int thickness = 3;
    
    Mat img(600, 800, CV_8UC3, Scalar::all(0));
    
    int baseline=0;
    Size textSize = getTextSize(text, fontFace,
                                fontScale, thickness, &baseline);
    baseline += thickness;
    
    // center the text
    Point textOrg((img.cols - textSize.width)/2,
                  (img.rows + textSize.height)/2);
    
    // draw the box
    rectangle(img, textOrg + Point(0, baseline),
              textOrg + Point(textSize.width, -textSize.height),
              Scalar(0,0,255));
    // ... and the baseline first
    line(img, textOrg + Point(0, thickness),
         textOrg + Point(textSize.width, thickness),
         Scalar(0, 0, 255));
    
    // then put the text itself
    putText(img, text, textOrg, fontFace, fontScale,
            Scalar::all(255), thickness, 8);

    The size of a box that contains the specified text.

    [putText]

    Parameters

    • text: any

      Input text string.

    • fontFace: int

      Font to use, see HersheyFonts.

    • fontScale: double

      Font scale factor that is multiplied by the font-specific base size.

    • thickness: int

      Thickness of lines used to render the text. See putText for details.

    • baseLine: any

      y-coordinate of the baseline relative to the bottom-most text point.

    Returns Size

line

  • line(img: InputOutputArray, pt1: Point, pt2: Point, color: any, thickness?: int, lineType?: int, shift?: int): void
  • The function line draws the line segment between pt1 and pt2 points in the image. The line is clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased lines are drawn using Gaussian filtering.

    Parameters

    • img: InputOutputArray

      Image.

    • pt1: Point

      First point of the line segment.

    • pt2: Point

      Second point of the line segment.

    • color: any

      Line color.

    • Optional thickness: int

      Line thickness.

    • Optional lineType: int

      Type of the line. See LineTypes.

    • Optional shift: int

      Number of fractional bits in the point coordinates.

    Returns void

polylines

  • polylines(img: InputOutputArray, pts: any, npts: any, ncontours: int, isClosed: bool, color: any, thickness?: int, lineType?: int, shift?: int): void
  • polylines(img: InputOutputArray, pts: InputArrayOfArrays, isClosed: bool, color: any, thickness?: int, lineType?: int, shift?: int): void
  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    Parameters

    • img: InputOutputArray
    • pts: any
    • npts: any
    • ncontours: int
    • isClosed: bool
    • color: any
    • Optional thickness: int
    • Optional lineType: int
    • Optional shift: int

    Returns void

  • The function [cv::polylines] draws one or more polygonal curves.

    Parameters

    • img: InputOutputArray

      Image.

    • pts: InputArrayOfArrays

      Array of polygonal curves.

    • isClosed: bool

      Flag indicating whether the drawn polylines are closed or not. If they are closed, the function draws a line from the last vertex of each curve to its first vertex.

    • color: any

      Polyline color.

    • Optional thickness: int

      Thickness of the polyline edges.

    • Optional lineType: int

      Type of the line segments. See LineTypes

    • Optional shift: int

      Number of fractional bits in the vertex coordinates.

    Returns void

putText

  • putText(img: InputOutputArray, text: any, org: Point, fontFace: int, fontScale: double, color: Scalar, thickness?: int, lineType?: int, bottomLeftOrigin?: bool): void
  • The function [cv::putText] renders the specified text string in the image. Symbols that cannot be rendered using the specified font are replaced by question marks. See [getTextSize] for a text rendering code example.

    Parameters

    • img: InputOutputArray

      Image.

    • text: any

      Text string to be drawn.

    • org: Point

      Bottom-left corner of the text string in the image.

    • fontFace: int

      Font type, see HersheyFonts.

    • fontScale: double

      Font scale factor that is multiplied by the font-specific base size.

    • color: Scalar

      Text color.

    • Optional thickness: int

      Thickness of the lines used to draw a text.

    • Optional lineType: int

      Line type. See LineTypes

    • Optional bottomLeftOrigin: bool

      When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner.

    Returns void

rectangle

  • rectangle(img: InputOutputArray, pt1: Point, pt2: Point, color: any, thickness?: int, lineType?: int, shift?: int): void
  • rectangle(img: InputOutputArray, rec: Rect, color: any, thickness?: int, lineType?: int, shift?: int): void
  • The function [cv::rectangle] draws a rectangle outline or a filled rectangle whose two opposite corners are pt1 and pt2.

    Parameters

    • img: InputOutputArray

      Image.

    • pt1: Point

      Vertex of the rectangle.

    • pt2: Point

      Vertex of the rectangle opposite to pt1 .

    • color: any

      Rectangle color or brightness (grayscale image).

    • Optional thickness: int

      Thickness of lines that make up the rectangle. Negative values, like FILLED, mean that the function has to draw a filled rectangle.

    • Optional lineType: int

      Type of the line. See LineTypes

    • Optional shift: int

      Number of fractional bits in the point coordinates.

    Returns void

  • This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

    use rec parameter as alternative specification of the drawn rectangle: r.tl() and r.br()-Point(1,1) are opposite corners

    Parameters

    • img: InputOutputArray
    • rec: Rect
    • color: any
    • Optional thickness: int
    • Optional lineType: int
    • Optional shift: int

    Returns void

Generated using TypeDoc