opencv提供了line()函数来对直线的绘制。其原型如下:
void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
参数:
img: 要绘制线段的图像。
pt1: 线段的起点。
pt2: 线段的终点。
color: 线段的颜色,通过一个Scalar对象定义。
thickness: 线条的宽度。
lineType: 线段的类型。可以取值8, 4, 和CV_AA, 分别代表8邻接连接线,4邻接连接线和反锯齿连接线。默认值为8邻接。为了获得更好地效果可以选用CV_AA(采用了高斯滤波)。
shift: 坐标点小数点位数。
示例代码:
-
#include <iostream> -
#include <stdio.h> -
#include <opencv2/opencv.hpp> -
using namespace std; -
using namespace cv; -
int main() -
{ -
Mat src=imread("A.jpg"); -
line(src,Point(1,1),Point(250,250),Scalar(0,0,255),5,CV_AA); -
imwrite("src.jpg",src); -
imshow("A",src); -
printf("channel: %d",src.channels()); -
#if 0 -
Mat dst; -
Canny(src,dst,50,200); -
imwrite("dst.jpg",dst); -
imshow("dst",dst); -
#endif -
waitKey(0); -
}
效果图: