zoukankan      html  css  js  c++  java
  • 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
    );
    }

  • 相关阅读:
    try catch finally
    类的小练习
    易混淆概念总结
    C#中struct和class的区别详解
    Doing Homework again
    悼念512汶川大地震遇难同胞——老人是真饿了
    Repair the Wall
    Saving HDU
    JAVA-JSP隐式对象
    JAVA-JSP动作
  • 原文地址:https://www.cnblogs.com/techdreaming/p/5193835.html
Copyright © 2011-2022 走看看