opencv 点到点的距离
时间: 2023-11-19 13:04:47 浏览: 175
引用中的代码是用于计算OpenCV中点到直线的距离的函数,而不是点到点的距离。如果你需要计算点到点的距离,可以使用OpenCV中的norm函数。例如,如果你有两个点point1和point2,你可以使用以下代码计算它们之间的欧几里得距离:
```
double distance = cv::norm(point1 - point2);
```
相关问题
opencv点到直线的距离
在OpenCV中,可以使用 `cv::pointPolygonTest` 函数来计算点到直线的距离。以下是一个示例代码:
```cpp
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 定义直线的两个点
Point pt1(50, 50), pt2(200, 200);
// 定义点
Point pt(100, 150);
// 计算点到直线的距离
double dist = pointPolygonTest(vector<Point>{pt1, pt2}, pt, true);
// 输出距离
cout << "Distance from point to line: " << dist << endl;
return 0;
}
```
在上面的示例中,我们定义了一条直线,两个点分别为 `(50, 50)` 和 `(200, 200)`,还定义了一个点 `(100, 150)`。然后使用 `pointPolygonTest` 函数计算点 `(100, 150)` 到直线的距离,并将结果输出。注意,`pointPolygonTest` 函数的第三个参数表示是否计算点到多边形的距离,将其设置为 `true` 表示计算点到直线的距离。
opencv求点到直线距离
使用 OpenCV 中的 `pointPolygonTest` 函数可以求点到直线的距离。具体步骤如下:
1. 定义直线上的两个点 `pt1` 和 `pt2`。
2. 定义需要求距离的点 `pt3`。
3. 使用 `cv::Vec4f` 类型的变量 `line` 存储直线的参数,即 `cv::fitLine(pt1, pt2, line, cv::DIST_L2, 0, 0)`。
4. 使用 `cv::pointPolygonTest` 函数求解距离,即 `double dist = cv::pointPolygonTest(line, pt3, true);`。
其中 `true` 表示计算有符号距离,即点在直线的一侧为正,另一侧为负;`false` 表示计算无符号距离,即距离的绝对值。
阅读全文