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

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

相关推荐
Sherlock Ma1 小时前
西瓜书《机器学习》全网最详细解读 第一章:绪论
人工智能·深度学习·考研·机器学习·学习方法·西瓜书·改行学it
烟锁池塘柳01 小时前
【机器学习】一文彻底搞懂正则化(Regularization)
人工智能·深度学习·机器学习
一个天蝎座 白勺 程序猿1 小时前
从AlphaGo到ChatGPT:机器学习基础概念的全景式拆解与工程实践思考
人工智能·机器学习·chatgpt
Luhui Dev1 小时前
Anthropic 2026 最新 Agent Harness 架构完整拆解:Managed Agents
人工智能·架构·agent·luhuidev
skywalk81631 小时前
安装superpowers-zh (AI 编程超能力 · 中文增强版)
人工智能
经济元宇宙2 小时前
摄影培训行业百科:机构选择与学习路径全解析
大数据·人工智能·学习
哥只是传说中的小白2 小时前
GrsaiApi官方正版字字动画插件!支持nano banana pro和gpt-image-2模型
人工智能·gpt·ai作画·开源·aigc·api
GJGCY2 小时前
企业AI Agent落地架构深度解析:LLM+RAG+RPA+工具调用全流程
大数据·人工智能·ai·数字化·智能体
刀法如飞2 小时前
Ontology本体论是什么数据结构?Palantir 技术原理介绍
数据结构·人工智能·ai编程·图论
大神科技AI定制2 小时前
企业级OpenClaw落地指南:如何通过私有化部署构建安全AI Agent工作流?
人工智能·安全