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

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

相关推荐
武子康几秒前
HunyuanVideo 全家族选型:原版 13B / I2V / Avatar / Foley / 1.5 8.3B 怎么分工
人工智能·llm·aigc
wenzhangli7几秒前
OODER Studio设计工具导入体系深度解析
人工智能·自动化
qiaozhangmenai几秒前
AI经营增长系统:企业数字化转型进入智能体时代
人工智能
水如烟1 分钟前
孤能子视角:闭合与回环——神经系统的开放拓扑与血液循环的封闭回路
人工智能
盼小辉丶4 分钟前
OpenCV-Python实战——分析与加速OpenCV应用程序
python·神经网络·opencv·计算机视觉
Micheal_NET6 分钟前
Microsoft Agent Framework-C#企业级 AI Agent 平台架构
人工智能·架构
小马过河R10 分钟前
微前端实践:从概念、原理到 qiankun 落地
前端·人工智能·前端框架
并红塔11 分钟前
AI Agent 多智能体编排架构实战:从PoC到事件驱动的架构演进与踩坑全记录
人工智能
Cloudtechnology12 分钟前
GEO服务商哪家好?2026年头部服务商技术路线、行业适配与ROI数据全解析
大数据·人工智能
集之互动14 分钟前
坚守合规传播底线 集之互动AI TVC重构大健康品牌精细化传播体系
人工智能·重构