cv::line()参数详解
时间: 2023-08-14 20:06:30 浏览: 97
`cv::line()`是OpenCV中用于绘制线段的函数,其原型为:
```c++
void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
```
下面是各个参数的详细解释:
1. `img`:输入/输出图像,即需要在其上绘制线段的图像。可以是任何类型的OpenCV图像数据结构,如`cv::Mat`、`cv::UMat`等。
2. `pt1`:线段的起点,即`cv::Point`类型的点坐标。
3. `pt2`:线段的终点,即`cv::Point`类型的点坐标。
4. `color`:线段的颜色,即`cv::Scalar`类型的颜色值。在BGR颜色空间下,颜色值的顺序是蓝色、绿色、红色。
5. `thickness`:线段的粗细,即线段的宽度。如果为负值,则表示绘制实心线段。
6. `lineType`:线段的类型,即线段的连接方式或者是否为抗锯齿线段。默认值为`LINE_8`,表示8连接线段。还有其他类型可供选择,如`LINE_4`、`LINE_AA`等。
7. `shift`:可以为点坐标指定的小数位数。默认值为0,表示整数坐标。
需要注意的是,`pt1`和`pt2`指定的点坐标必须在图像的范围内。如果坐标值超出了图像的范围,`cv::line()`函数将会报错或者不会绘制线段。
相关问题
cv::line 详解
`cv::line` 是 OpenCV 中用于绘制线条的函数之一。其函数原型如下:
```cpp
void cv::line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)
```
其中,
- `img`:输入输出参数,表示要绘制线条的图像;
- `pt1`:输入参数,表示线条的起点,类型为 `cv::Point`;
- `pt2`:输入参数,表示线条的终点,类型为 `cv::Point`;
- `color`:输入参数,表示线条的颜色,类型为 `cv::Scalar`,可以通过 `cv::Scalar(B, G, R)` 的方式设置颜色,其中 B、G、R 分别代表蓝色、绿色、红色的值;
- `thickness`:输入参数,表示线条的宽度,类型为 `int`,默认值为 1;
- `lineType`:输入参数,表示线条的类型,类型为 `int`,默认值为 `LINE_8`,可以选择 `LINE_4` 或 `LINE_AA`;
- `shift`:输入参数,表示坐标点的小数点位数,类型为 `int`,默认值为 0。
使用 `cv::line` 函数可以在图像上绘制一条直线。例如,以下代码可以在一张黑色的图像上绘制一条红色的直线:
```cpp
cv::Mat img(512, 512, CV_8UC3, cv::Scalar(0, 0, 0)); // 创建一张黑色的图像
cv::line(img, cv::Point(100, 100), cv::Point(400, 400), cv::Scalar(0, 0, 255), 3); // 在图像上绘制一条红色的直线
```
绘制结果如下:
![line](https://img-blog.csdn.net/20180530211606679?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Jsb2c2NjY2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
cv::putText各参数详解,以及可选参数的含义
cv::putText 函数的各参数及可选参数的含义如下:
```cpp
void cv::putText(cv::Mat& img, // 需要绘制文本的图像
const cv::String& text, // 要绘制的文本内容
cv::Point org, // 文本的起始位置
int fontFace, // 字体类型,如 cv::FONT_HERSHEY_SIMPLEX
double fontScale, // 字体大小
cv::Scalar color, // 文本颜色
int thickness = 1, // 文本线条宽度
int lineType = LINE_8, // 文本线条类型
bool bottomLeftOrigin = false) // 如果为 true,则 org 参数表示文本左下角的位置,否则表示文本左上角的位置
```
- img:需要绘制文本的图像。
- text:要绘制的文本内容。
- org:文本的起始位置。
- fontFace:字体类型,如 cv::FONT_HERSHEY_SIMPLEX,具体可选值如下:
- cv::FONT_HERSHEY_SIMPLEX:正常大小无衬线字体。
- cv::FONT_HERSHEY_PLAIN:小号无衬线字体。
- cv::FONT_HERSHEY_DUPLEX:正常大小无衬线字体,加粗。
- cv::FONT_HERSHEY_COMPLEX:正常大小衬线字体。
- cv::FONT_HERSHEY_TRIPLEX:正常大小衬线字体,加粗。
- cv::FONT_HERSHEY_COMPLEX_SMALL:小号衬线字体。
- cv::FONT_HERSHEY_SCRIPT_SIMPLEX:手写风格字体。
- cv::FONT_HERSHEY_SCRIPT_COMPLEX:手写风格衬线字体。
- fontScale:字体大小。
- color:文本颜色。
- thickness:文本线条宽度。
- lineType:文本线条类型,具体可选值如下:
- LINE_4:4 连通线条。
- LINE_8:8 连通线条。
- LINE_AA:抗锯齿线条。
- bottomLeftOrigin:如果为 true,则 org 参数表示文本左下角的位置,否则表示文本左上角的位置。
阅读全文