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

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

相关推荐
火山引擎开发者社区12 分钟前
从个人提效到组织能力:卓驭科技基于 ArkClaw 的企业级 AI 落地实践
人工智能
月诸清酒12 分钟前
55k Star 开源工具 Orca:Coding Agents 中控台
人工智能
huashengzsj12 分钟前
2026年WordPress建站公司推荐:哪些服务商更适合长期运营网站?
大数据·人工智能·云计算
今天AI了吗13 分钟前
从“金鱼脑”到“大象记忆”:AI Agent 短期记忆与长期记忆的存储与检索全解
数据库·人工智能·python·sql·rust
cd_9492172118 分钟前
具身大脑成机器人产业核心底座,星源智技术落地与产业布局解析
人工智能·microsoft·机器人
tqs_1234526 分钟前
AI后端服务高性能架构:GPU独立部署、算力解耦、弹性伸缩实战
人工智能·架构
MartinYeung532 分钟前
[论文学习]谄媚研究者驱动表演性错位:大语言模型“对齐伪装”成因的颠复性实证研究
人工智能·学习·语言模型
红色星际33 分钟前
新石器走进无人配送车下半场
大数据·人工智能
高远项目管理36 分钟前
技术实践:用高远-AI智能化缺陷管理应用把缺陷录入到派单全自动
人工智能·智能驾驶·缺陷管理·aspice·研发协同·飞书项目meego·高远科技
爱吃火鸡面呀40 分钟前
图片拼接与答题卡判断对错:从图像处理到自动判卷的完整实践
图像处理·人工智能