opencv 简单绘图学习笔记
下面是源码。
#include <cv.h>
#include <highgui.h>
#include <iostream>
#include <stdio.h>
#define w 400
using namespace std;
using namespace cv;
//画椭圆函数
void MyEllipse( Mat img, double angle )
{
int thickness = 2;//线粗
int lineType = 8;//线类型
//图像,椭圆中点,椭圆长轴短轴,旋转角度,0度,360度,像素,线粗,线类型
ellipse( img,
Point( w/2.0, w/2.0 ),
Size( w/4.0, w/16.0 ),
angle,
0,
360,
Scalar( 255, 191, 0 ),
thickness,
lineType );
}
//画圆函数
void MyFilledCircle( Mat img, Point center )
{
int thickness = -1;
int lineType = 8;
//图像,圆心,半径,像素,线粗,线类型 若为-1填充整个圆区域
circle( img,
center,
w/32.0,
Scalar( 0, 240, 0 ),
thickness,
lineType );
}
int main()
{
/// 窗口名字
char atom_window[] = "Drawing 1: Atom";
/// 创建空全黑像素的空图像,宽度高度均为400
Mat atom_image = Mat::zeros( w, w, CV_8UC3 );
int width = atom_image.rows;
cout << width << endl;//输出宽度
cout << atom_image.cols << endl;//输出高度
/// 1.a. 创建椭圆
MyEllipse( atom_image, 90 );
MyEllipse( atom_image, 0 );
MyEllipse( atom_image, 30 );
MyEllipse( atom_image, -30 );
MyEllipse( atom_image, 60 );
MyEllipse( atom_image, -60 );
/// 1.b. 创建圆
//以图像中心为圆心画圆
MyFilledCircle( atom_image, Point( w/2.0, w/2.0) );
namedWindow(atom_window,1);//创建显示窗口
imshow("circle",atom_image);//显示图像
waitKey();//等待用户操作
return 0;
}
备注:通过修改Scalar值可以改变椭圆和圆形颜色,三个值分别对应BGR三原色值,通过rgb值对照表可以设置出各种颜色。修改长轴短轴和半径也可以改变椭圆和圆形大小。
运行结果可看到如下图形: