C++opencv,有灰度图res,从起点begin到终点end绘制一条线段(白色),并在终点处展示线段的长度length
时间: 2024-02-27 21:51:45 浏览: 15
下面是一个简单的示例代码,可以实现你的需求:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 加载灰度图像
Mat res = imread("path/to/image.jpg", IMREAD_GRAYSCALE);
// 设置起点和终点
Point begin(50, 50);
Point end(200, 200);
// 画线
line(res, begin, end, Scalar(255), 2);
// 计算线段长度
double length = norm(end - begin);
// 在终点处显示线段长度
std::ostringstream ss;
ss << "length: " << length;
putText(res, ss.str(), end, FONT_HERSHEY_SIMPLEX, 0.5, Scalar(255), 1);
// 显示图像
imshow("Image with line and length", res);
waitKey(0);
return 0;
}
```
在这个例子中,我们首先加载了一个灰度图像,并设置了起点和终点。然后,我们使用 `line()` 函数在图像上绘制一条线段,颜色为白色,线宽为 2 像素。接下来,我们使用 `norm()` 函数计算线段的长度,并在终点处使用 `putText()` 函数显示长度。最后,我们显示图像,并等待用户按任意键关闭窗口。
请注意,为了使文本显示在图像上,我们使用了 `putText()` 函数的最后一个参数(thickness)为 1,这表示文本的线宽为 1 像素。如果你想要更粗的文本线宽,可以将该参数设置为更大的值。