#include<opencv2/opencv.hpp>
using namespace cv;
Mat src = imread("1.jpg");
void MyLine();
void MyRectangle();
void MyCircle();
void MyRandLine();
int main(int arc, char** argv)
{
MyLine();
MyRectangle();
MyCircle();
putText(src, "Hello Opencv", Point(30, 30), CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 0), 3, 8);
MyRandLine();
namedWindow("src", CV_WINDOW_AUTOSIZE);
imshow("src", src);
waitKey(0);
return 0;
}
void MyLine()
{
Point p1 = Point(20, 30);
Point p2;
p2.x = 300, p2.y = 300;
Scalar color = Scalar(0, 0, 255);
line(src, p1, p2, color, 1, LINE_8);
}
void MyRectangle()
{
Rect rect = Rect(179, 87, 100, 100);
Scalar color = Scalar(255, 0, 0);
rectangle(src, rect, color, 2, LINE_8);
}
void MyCircle()
{
Scalar color = Scalar(0, 255, 255);
circle(src, Point(src.cols / 2, src.rows / 2), 100, color, 2, LINE_8);
}
void MyRandLine()
{
RNG rng(1);//1为随机种子
Point p1, p2;
Mat dst = Mat::zeros(src.size(), src.type());
for (int i = 0; i < 1000; i++) {
p1.x = rng.uniform(0, src.cols);
p2.x = rng.uniform(0, src.cols);
p1.y = rng.uniform(0, src.rows);
p2.y = rng.uniform(0, src.rows);
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
//程序执行到当前时,会等待50ms,其间用户触发了一个按键,就会被设置成这个按键的ASCLL码
if (waitKey(50) > 0) {
break;
}
line(dst, p1, p2, color, 1, 8);
namedWindow("随机线");
imshow("随机线", dst);
}
}