Python要选定一个物体,opencv测量它的周长,面积,角点
时间: 2023-06-01 15:04:06 浏览: 166
可以使用以下代码来实现:
```python
import cv2
# 读取图像
img = cv2.imread("image.jpg")
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
ret, thresh = cv2.threshold(gray, 127, 255, 0)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 选定一个轮廓
cnt = contours[0]
# 计算周长
perimeter = cv2.arcLength(cnt, True)
# 计算面积
area = cv2.contourArea(cnt)
# 计算角点
corners = cv2.approxPolyDP(cnt, 0.01*perimeter, True)
# 在图像上绘制轮廓和角点
cv2.drawContours(img, [cnt], 0, (0, 255, 0), 3)
cv2.drawContours(img, [corners], 0, (0, 0, 255), 3)
# 显示结果
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.findContours` 函数可以查找图像中的所有轮廓,返回轮廓列表和轮廓层次结构。`cv2.arcLength` 函数可以计算轮廓的周长,`cv2.contourArea` 函数可以计算轮廓的面积。`cv2.approxPolyDP` 函数可以对轮廓进行多边形拟合,返回拟合后的多边形角点。在图像上绘制轮廓和角点可以使用 `cv2.drawContours` 函数。
阅读全文