opencv图像处理怎么找轮廓两点的距离
时间: 2023-11-07 11:04:47 浏览: 50
要找轮廓中的两个点之间的距离,可以通过以下步骤实现:
1. 使用findContours函数找到轮廓。
2. 使用approxPolyDP函数将轮廓近似为一个多边形,以便更好地计算轮廓的长度。
3. 使用arcLength函数计算轮廓的长度。
4. 使用cv::Point函数找到轮廓上的两个点。
5. 使用norm函数计算两个点之间的距离。
下面是示例代码:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("example.jpg", IMREAD_GRAYSCALE);
// 二值化图像
Mat binaryImage;
threshold(image, binaryImage, 128, 255, THRESH_BINARY);
// 查找轮廓
vector<vector<Point>> contours;
findContours(binaryImage, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 近似轮廓为多边形
vector<Point> contour = contours[0];
vector<Point> approx;
approxPolyDP(contour, approx, 0.01 * arcLength(contour, true), true);
// 找到两个点
Point p1 = approx[0];
Point p2 = approx[approx.size() - 1];
// 计算两点之间的距离
double distance = norm(p1 - p2);
cout << "Distance between two points: " << distance << endl;
return 0;
}
```
在此示例中,我们首先读取一张图像,然后将其转换为二值图像。接下来,我们使用findContours函数查找轮廓,并使用approxPolyDP函数将其近似为多边形。然后,我们找到轮廓的第一个和最后一个点,并计算它们之间的距离。最后,我们输出距离结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)