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

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

相关推荐
Agent产品评测局5 分钟前
企业发票管理自动化落地,验真归档全流程实现方法:2026企业级智能体选型与实测指南
运维·网络·人工智能·ai·chatgpt·自动化
HIT_Weston7 分钟前
39、【Agent】【OpenCode】本地代理分析(三)
人工智能·agent·opencode
大虫刷题9 分钟前
华为认证(HCIP-AI)五大分类,有何区别及学习难度和从事职业方向
人工智能·学习
源码之屋13 分钟前
计算机毕业设计:Python出行数据智能分析与预测平台 Django框架 可视化 数据分析 PyEcharts 交通 深度学习(建议收藏)✅
人工智能·python·深度学习·数据分析·django·汽车·课程设计
AI学长16 分钟前
数据集|多种水果目标检测数据集-苹果、西瓜、番茄、菠萝、洋葱(共 5 类)
人工智能·目标检测·计算机视觉·多种水果目标检测数据集
ForDreamMusk22 分钟前
深度学习的计算环境
人工智能·深度学习
枫叶林FYL22 分钟前
第 4 章 视觉感知与场景理解
人工智能·深度学习
给自己做减法25 分钟前
AI编程相关概念
人工智能·python·ai编程
实在智能RPA30 分钟前
Agent 的流程可以随时修改调整吗?深度解析 2026 年智能体动态编排与业务闭环
人工智能·ai
郝学胜-神的一滴33 分钟前
PyTorch自动微分核心解析:从原理到实战实现权重更新
人工智能·pytorch·python·深度学习·算法·机器学习