- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
line 函数在图像中绘制从 pt1 到 pt2 两点之间的线段。这条线会被图像边界裁剪。对于没有抗锯齿效果且坐标为整数的线,会使用 8-连接或者 4-连接的 Bresenham 算法。粗线条的绘制会采用圆角处理。抗锯齿线条则通过高斯滤波来绘制。
函数原型
void cv::line
(
InputOutputArray img,
Point pt1,
Point pt2,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
参数
- 参数img 图像.
- 参数pt1 线段的第一个点。
- 参数pt2 线段的第二个点。
- 参数color 线条的颜色。
- 参数thickness 线条的厚度
- 参数lineType 线条的类型。参见 LineTypes。
- 参数shift 点坐标的分数位数。
代码示例
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个白色背景的图像
cv::Mat image( 400, 400, CV_8UC3, cv::Scalar( 255, 255, 255 ) );
// 定义线段的两个端点
cv::Point pt1( 50, 50 );
cv::Point pt2( 350, 350 );
// 绘制线段
cv::line( image, pt1, pt2, cv::Scalar( 0, 0, 255 ), 2, cv::LINE_AA );
// 显示图像
cv::imshow( "Line Drawing", image );
cv::waitKey( 0 );
return 0;
}