绘制圆
API: circle(img0, Point(200, 200), 50, Scalar(255, 0, 0),2);
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img0(400,400,CV_8UC3,Scalar(100,100,100));
circle(img0, Point(200, 200), 50, Scalar(255, 0, 0),2); //空心圆
imshow("img0", img0);
circle(img0, Point(200,200),50,Scalar(255,0,0),-1,2);//实心圆
imshow("img0", img0);
waitKey(0);
return 0;
}
result
绘制直线
API: line(img0, p0, p1, Scalar(0,0,255),3,4);
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img0(400,400,CV_8UC3,Scalar(100,100,100));
int x0 = img0.cols / 4;
int y0 = img0.rows / 4;
int x1 = img0.cols * 3 / 4;
int y1 = img0.rows * 3 / 4;
Point p0 = Point(x0, y0);
Point p1 = Point(x1,y1);
line(img0, p0, p1, Scalar(0,0,255),3,4);
imshow("img0", img0);
waitKey(0);
return 0;
}
result
绘制矩形
API: rectangle(img0, p0, p1, Scalar(0, 255, 0), 5, 8);
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img0(400,400,CV_8UC3,Scalar(100,100,100));
int x0 = img0.cols / 8;
int y0 = img0.rows / 8;
int x1 = img0.cols * 7 / 8;
int y1 = img0.rows * 7 / 8;
Point p0 = Point(x0, y0);
Point p1 = Point(x1,y1);
rectangle(img0, p0, p1, Scalar(0, 255, 0), 5, 8);
imshow("img0", img0);
rectangle(img0, p0, p1, Scalar(0, 255, 0), -1, 8);
imshow("img1", img0);
waitKey(0);
return 0;
}
result
添加文字
API : putText(img0, "Hello,OpenCV", p0, FONT_HERSHEY_COMPLEX, 0.8, Scalar, 2);
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img0(400,400,CV_8UC3,Scalar(100,100,100));
int x0 = 50;
int y0 = img0.rows / 2 - 50;
Point p0 = Point(x0, y0);
putText(img0, "Hello,OpenCV", p0, FONT_HERSHEY_COMPLEX, 0.8, Scalar(255, 0, 0), 2);
imshow("img0", img0);
waitKey(0);
return 0;
}
result