Qt-OpenCV学习笔记--绘制椭圆--ellipse()

概述

这个函数就是画一个椭圆。

但是有两种重载。

第一种重载

函数

void cv::ellipse
(
    InputOutputArray    img,
    Point 	            center,
    Size 	            axes,
    double 	            angle,
    double 	            startAngle,
    double 	            endAngle,
    const Scalar & 	    color,
    int 	            thickness = 1,
    int 	            lineType = LINE_8,
    int 	            shift = 0 
)	
img输出对象
center椭圆的中心点
axes椭圆的长轴和短轴
angle椭圆的偏转角度(顺时针偏转)
startAngle椭圆的起始角度
endAngle椭圆的结束角度
color画笔的颜色
thickness线宽
lineType线条的类型
shift中心坐标和轴值的小数位数

测试代码

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <vector>

using namespace cv;
using namespace std;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //新建图像
    cv::Mat mat(500,600,CV_8UC3,Scalar(200,200,200));

    //定义椭圆的中心点
    cv::Point center(mat.size().width/2,mat.size().height/2);

    //定义大小
    cv::Size size(200,100);

    //定义画笔的颜色
    cv::Scalar color1(0,0,255);
    cv::Scalar color2(0,255,0);

    //绘制椭圆1
    cv::ellipse(mat,center,size,20,0,360,color1,2,8);

    //绘制椭圆2
    cv::ellipse(mat,center,size,20,30,100,color2,2,8);

    //显示
    imshow("mat",mat);

}

Widget::~Widget()
{
    delete ui;
}

测试结果

第二种重载

函数

void cv::ellipse
(
InputOutputArray 		img,
const RotatedRect & 	box,
const Scalar & 	        color,
int 	                thickness = 1,
int 	                lineType = LINE_8 
)	
img输出对象
box旋转矩形包含椭圆的属性
color颜色
thickness线宽
lineType线条类型

测试代码

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <vector>

using namespace cv;
using namespace std;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //新建图像
    cv::Mat mat(500,600,CV_8UC3,Scalar(200,200,200));

    //定义中心点
    cv::Point center(mat.size().width/2,mat.size().height/2);

    //定义大小
    cv::Size size(200,100);

    cv::RotatedRect box(center,size,30);

    //定义画笔的颜色
    cv::Scalar color(0,0,255);

    //绘制椭圆
    cv::ellipse(mat,box,color,2,8);

    //显示
    imshow("mat",mat);

}

Widget::~Widget()
{
    delete ui;
}

测试结果

参考

OpenCV学习笔记(5)_ ellipse绘制函数浅析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值