使用opencv处理图像时,经常会需要在图像上画点、线段、矩形框等,
而在opencv画图中Point和Scalar是两个非常重要的结构体。
1、Point表示由其图像坐标 x 和 y 指定的2D点。可定义为:
Point pt;
pt.x = 10;
pt.y = 8;
或者Point pt = Point(10, 8);
2、Scalar 表示了具有4个元素的数组。在OpenCV中被大量用于传递像素值。如果用不到第四个参数,则无需定义。
Scalar( a, b, c )
那么定义的RGB颜色值为: Red = c, Green = b and Blue = a
=============================================
opencv中常用的画图函数
画直线:line
画椭圆:ellipse
画矩形:rectangle
画圆:circle
画多边形:polylines
填充的多边形:fillPoly
接下来就是例子&结果:
Mat image(300, 300, CV_8UC3, Scalar(0, 0, 0));
Point points[1][20];
points[0][0] = Point(100, 100);
points[0][1] = Point(200, 100);
points[0][2] = Point(250, 200);
points[0][3] = Point(50, 200);
const Point* pt[1] = { points[0] };
int npt[1] = { 4 };
polylines(image, pt, npt, 1, 1, Scalar(0, 0, 255),3);
fillPoly(image, pt, npt, 1, Scalar(0, 255, 0), 8);
imshow("image", image);
waitKey(0);
Mat image(300, 300, CV_8UC3, Scalar(0, 0, 0));
Point p1, p2;
p1.x = 100;
p1.y = 100;
p2.x = 200;
p2.y = 200;
rectangle(image, p1, p2, Scalar(0,255,0),1,8,0);
Rect rt;
rt.x = 50;
rt.y = 50;
rt.width = 100;
rt.height = 80;
Mat image(300, 300, CV_8UC3, Scalar(0, 0, 0));
Point p1, p2;
p1.x = 100;
p1.y = 100;
p2.x = 200;
p2.y = 200;
Point p3, p4;
p3.x = 40;
p3.y = 40;
p4.x = 60;
p4.y = 60;
circle(image, p1, 5, Scalar(255,255,0),1,8,0);
circle(image, p2, 5, Scalar(0, 255, 0), 1, 8, 0);
circle(image, p3, 1, Scalar(0, 255, 0), 1, 8, 0);
circle(image, p3, 5, Scalar(0, 255, 0), 1, 8, 0);
circle(image, p3, 10, Scalar(0, 255, 0), 1, 8, 0);
circle(image, p4, 5, Scalar(255, 255, 0), 1, 8, 0);
line(image,p1,p2,Scalar(0,255,255),3,8,0);
imshow("image", image);
waitKey(0);
Mat image(300, 300, CV_8UC3, Scalar(0, 0, 0));
Point p1, p2;
p1.x = 150;
p1.y = 150;
ellipse(image, p1, Size(50,80),0,0,360,Scalar(0,255,255),2,8);
ellipse(image, p1, Size(50, 80), 90, 0, 360, Scalar(0, 255, 255), 2, 8);
ellipse(image, p1, Size(50, 80), 45, 0, 360, Scalar(0, 255, 255), 2, 8);
ellipse(image, p1, Size(50, 80), -45, 0, 360, Scalar(0, 255, 255), 2, 8);
imshow("image", image);
waitKey(0);
![](https://i-blog.csdnimg.cn/blog_migrate/6cf6bead6f9b7845ecaaf05ef341fd01.png)
参考:
1.http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html#