在opencv中求面积python
时间: 2023-06-30 18:13:23 浏览: 63
在OpenCV中,可以使用cv2.contourArea函数来计算轮廓的面积。cv2.contourArea函数的参数是一个轮廓(即一个点集),它会返回该轮廓所包含区域的面积。以下是一个示例代码,演示了如何使用cv2.contourArea计算轮廓的面积:
```python
import cv2
# 读取图像
img = cv2.imread("test.jpg")
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对灰度图像进行二值化处理
ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
# 查找轮廓
contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
result = img.copy()
cv2.drawContours(result, contours, -1, (0, 0, 255), 2)
# 计算轮廓的面积
area = cv2.contourArea(contours[0])
# 显示结果
cv2.imshow("img", img)
cv2.imshow("binary", binary)
cv2.imshow("result", result)
print("Contour area:", area)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码将读取一张图像,并将其转换为灰度图像。然后对灰度图像进行二值化处理,找到轮廓并绘制轮廓。最后,使用cv2.contourArea函数计算轮廓的面积,并输出结果。
阅读全文