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

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

相关推荐
测开小菜鸟2 分钟前
从AI概念到LLM评估:全面解析大型语言模型的能力与评价
人工智能·语言模型·自然语言处理
实在智能RPA6 分钟前
3天变30分钟、40小时归零:跨境大卖用智能体在做什么?
大数据·人工智能·搜索引擎·实在智能·实在agent
RobinDevNotes15 分钟前
K8s+Ray+vLLM打穿大模型全生命周期(有实践步骤)
人工智能·云原生·容器·kubernetes·生活·vllm
达子66617 分钟前
AI训练师图解_02_能力培养_成为一名合格的AI训练师
人工智能
DS随心转APP17 分钟前
Claude的表格怎么导到word?AI 导出鸭一键高保真还原,批量导出告别格式噩梦
人工智能·chatgpt·word·ai导出鸭
tuanxiang18 分钟前
踩坑实录:用好免费去AI味工具避过内容平台的隐性校验
人工智能
DS随心转APP19 分钟前
Grok的表格怎么导到word?AI 导出鸭一键高保真还原,批量导出告别格式噩梦
人工智能·chatgpt·word·ai导出鸭
yuhulkjv33520 分钟前
Kimi表格复制到word不再崩坏,AI导出鸭批量导出完美保留公式与边框
人工智能·ai·word·ai导出鸭
不吃辣49025 分钟前
vibe coding | 如何做一个 AI 闹钟小程序?
人工智能·小程序·ai编程
数据分析小兵31 分钟前
金融数据分类分级实战系列四:如何实现AI自动分级
人工智能·数据治理·数据安全·数据分类分级·ai大模型·数据中台·智能体