• opencv 基本绘图函数


    opencv 常用的数据结构和函数

    颜色空间转换函数 cvtColor 函数

    cvtColor 函数是opencv 中的颜色空间转换函数。
    可以实现rgb向hsv hsi等颜色空间的转换,也可以转换成灰度图像

    原型:void cvtColor (InputArray src,OutArray dst,int code,int dstCn =0);
    src :输入图像
    dst:输出图像
    code:颜色转换空间标示
    dstCn:目标图像的通道数 若该参数为0 则为目标图像的通道数

    cvtColor 函数标识符
    RGB-> BGR CV_BGR2BGRA ,CV_RGB2BGRA,CV_BGRA2RGBA,CV_BGR2BGRA,CV_BGRA2BGR
    RGB->GRAY CV_RGB2GRAY,CV_GRAY2RGB,CV_RGBA2GRAY,CV_GRAY2RGBA
    RGB->HSV CV_RGB2HSV,CV_BGR2HSV,CV_HSV2BGR,CV_HSV2BGR,CV_HSV2RGB
    RGB->HLS CV_RGB2HLS,CV_BGR2HLS,CV_HLS2RGB,CV_HLS2BGR

    #include "opencv2/imgproc/imgproc.hpp"
    #include "opencv2/highgui/highgui.hpp"
    using namespace cv;
    int main()
    {
    Mat srcImage = imread("jpg/1.jpeg");
    Mat dstImage;
    cvtColor(srcImage,dstImage,CV_RGB2BGR);
    imshow("src",srcImage);
    imshow("dst",dstImage);
    waitKey();
    return 0;
    }


    图形绘制函数
    Ellipse函数的用法
    函数原型:void ellipse(Mat&img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar&color, int thickness=1, int lineType=8, int shift=0)

    img :画布容器
    center:椭圆中心
    axes :大小位于该矩形中
    angle:椭圆的旋转角度
    startangle:开始弧度
    endAngle:结束弧度
    color :图形颜色
    thickness :线宽
    lineType :线型
    shift :圆心坐标点和数轴的精度

    #include "opencv2/imgproc/imgproc.hpp"
    #include "opencv2/highgui/highgui.hpp"
    using namespace cv;
    #define WINDOW_WIDTH 600
    void DrawEllipse(Mat img,double angle)
    {
    int thickness = 2;
    int lineType = 8;
    ellipse(
    img,
    Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),
    Size(WINDOW_WIDTH/4,WINDOW_WIDTH/16),
    angle,
    0,
    360,
    Scalar(255,129,0),
    thickness,
    lineType
    );

    }
    int main()
    {
    Mat img(1000,600,CV_8UC3,Scalar::all(0));
    DrawEllipse(img,30);
    imshow("ellipse",img);
    waitKey();
    return 0;
    }


    Circle 函数的用法

    函数原型 void circle(Mat& img, Point center, int radius, const Scalar& color, intthickness=1, int lineType=8, int shift=0)
    img: 将要画圆的图像;
    center: 圆心;
    radius: 半径;
    color: 圆的颜色;
    thickness: 如果值是正,圆外轮廓的厚度,如果值是负,表示要绘制一个填充圆;
    lineType:线类型;
    shift:

    void DrawCircle(Mat img)
    {
    int thickness = -1;
    int lineType = 8;

    circle(
    img,
    Point(100,300),
    60,
    Scalar(0,89,255),
    thickness,
    lineType

    );
    }

    line 函数的用法
    函数原型 line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
    img :输出图像
    pt1 :开始点
    pt2 :结束点
    color:线条颜色
    thickness :线条粗细
    lineType :线型
    shift


    void DrawLine(Mat img)
    {
    int thickness = 1;
    int lineType = 8;

    line(
    img,
    Point(100,200),
    Point(500,600),
    Scalar(255,23,56),
    thickness,
    lineType
    );
    }

  • 相关阅读:
    DataTable转换成IList<T>的简单实现
    websocket
    获取用户使用设备信息
    判断对象是否相等
    关于PC适配
    树形数据结构实现平铺展示
    埋点
    多层表单验证
    表格行拖动,数据中状态值不同的禁止拖拽
    element tree 深度查询
  • 原文地址:https://www.cnblogs.com/techdreaming/p/5193835.html
Copyright © 2020-2023  润新知