如何计算掩膜图中多个封闭图形的面积

python 复制代码
import cv2

def calMaskArea(image,idx):
    mask = cv2.inRange(image, idx, idx)
    contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
    for contour in contours:
        area = cv2.contourArea(contour)
        print("图形的面积为", area)

image是包含多个封闭图形的掩膜图,如下:

idx表示掩膜的值,即图形的像素值,在RGB图像中是三维元组。e.g. (0,255,0)

contours中包含多个轮廓。

代码思路

  1. 使用cv2.inRange将图像二值化
  2. 使用cv2.findContours获取二值图像的轮廓,再使用cv2.contourArea计算每个轮廓的面积。

:直接对二值图像使用cv2.countNonZero无法分辨不同的封闭图形。

缺陷

这样计算的精度还不够高,比如计算圆形会损失1.9%的精度

圆形面积为7853.981633974483

图形的面积为 7704.0

相关推荐
AI创界者3 分钟前
【独家解析】Ernie-Image-AIO-Rapid一键部署本地运行整合包:深度融合架构如何重塑AI绘图效率?4K超分与硬件适配全指南
人工智能·架构
KaneLogger23 分钟前
设置全局智能体回复风格
人工智能
wltx168826 分钟前
海外版GEO优化适合耳机出口吗?
人工智能·python
AI袋鼠帝42 分钟前
作为练习两年半的OPC,我想给普通人7条真诚建议
人工智能
智慧景区与市集主理人1 小时前
露营设备租赁低效?巨有科技计时租赁系统激活五一增收新动能
大数据·人工智能
夏沫の梦1 小时前
DeepSeek V4部署:高效长上下文推理的实现详解
人工智能
code_li1 小时前
自动驾驶的调度开源软件
人工智能·机器学习·自动驾驶
zB6822HbX1 小时前
共建安全生态:深度解析Ledger大陆官方授权链路与合作
人工智能·ai写作
wayz111 小时前
Day 13 编程实战:朴素贝叶斯与极端涨跌预警
人工智能·算法·机器学习
AI袋鼠帝1 小时前
GPT-Image-2 Skill + Hermes多Agent,才是画图的神~
人工智能