python用hsv分割红色区域计算该区域面积,然后分割蓝色区域计算该区域面积
时间: 2023-09-06 08:08:46 浏览: 95
下面是 Python 中使用 OpenCV 库对红色和蓝色区域进行分割并计算面积的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread("test.jpg")
# 转换到 HSV 空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义红色和蓝色的阈值范围
lower_red = (0, 50, 50)
upper_red = (10, 255, 255)
lower_blue = (110, 50, 50)
upper_blue = (130, 255, 255)
# 对红色和蓝色区域进行分割
mask_red = cv2.inRange(hsv, lower_red, upper_red)
mask_blue = cv2.inRange(hsv, lower_blue, upper_blue)
# 计算红色和蓝色区域的面积
area_red = cv2.countNonZero(mask_red)
area_blue = cv2.countNonZero(mask_blue)
# 输出结果
print("红色区域面积:", area_red)
print("蓝色区域面积:", area_blue)
# 显示分割结果
cv2.imshow("Red Mask", mask_red)
cv2.imshow("Blue Mask", mask_blue)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码中,我们首先读取一张测试图像,并将其转换到 HSV 空间。然后,我们定义了红色和蓝色的阈值范围,并使用 `cv2.inRange` 函数对图像进行分割,得到红色和蓝色区域的二值掩模。接着,我们使用 `cv2.countNonZero` 函数计算二值掩模中非零像素的个数,即红色和蓝色区域的像素个数,从而得到两个区域的面积。最后,我们输出计算结果,并使用 `cv2.imshow` 函数显示分割结果。
注意:这里假设测试图像名为 `test.jpg`,请根据实际情况修改文件名或路径。
阅读全文