图像几何形状的绘制
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void draw_demo(cv::Mat& image)
{
Rect rect;
rect.x = 50;
rect.y = 50;
rect.width = 100;
rect.height = 100;
Mat bg = Mat::zeros(image.size(), image.type());
rectangle(image, rect, Scalar(0, 0, 255), -1, 8, 0);
circle(image, Point(35, 35), 15, Scalar(255, 0, 0), -1, 8, 0);
line(bg, Point(10, 10), Point(35, 40), Scalar(0, 255, 0), 2, 8, 0);
RotatedRect rrt;
rrt.center = Point(100, 100);
rrt.size = Size(100, 200);
rrt.angle = 0.0;
ellipse(image, rrt, Scalar(0, 255, 255), 2, 8);
Mat dst;
addWeighted(image, 0.7, bg, 0.3, 0, dst);
imshow("绘制", dst);
}
int main()
{
string path = "C:\\Users\\四明\\Pictures\\QQ图片20200608155343.jpg";
Mat img = imread(path);
if (img.empty())
{
cout << "图片加载失败!" << endl;
return -1;
}
namedWindow("image", WINDOW_FREERATIO);
imshow("image", img);
draw_demo(img);
waitKey(0);
destroyAllWindows();
return 0;
}