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

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

相关推荐
TheK5 分钟前
MCP到底是什么
前端·人工智能
Blossom.1185 分钟前
低代码开发:重塑软件开发的未来
数据仓库·人工智能·深度学习·低代码·机器学习·database·数据库架构
一颗小树x10 分钟前
NVIDIA Jetson 环境安装指导 PyTorch | Conda | cudnn | docker
人工智能·pytorch·conda
钡铼技术物联网关20 分钟前
工业4.0时代:RK3588边缘工业计算机助力AGV导航升级
linux·arm开发·人工智能·5g·边缘计算
果冻人工智能41 分钟前
DIY AI & ML:K-Means 算法
人工智能
Goboy1 小时前
当电影评论遇上人工智能,用NLTK解锁文本中的情感密码
人工智能·aigc·ai编程
Goboy1 小时前
手把手教你用深度学习玩转图像风格迁移
人工智能·aigc·ai编程
AI_Ming1 小时前
大模型RAG项目实战-知识库问答助手v1版
人工智能·面试·aigc
GIS小天1 小时前
AI预测排3新模型百十个定位预测+胆码预测+杀和尾2025年4月7日第40弹
人工智能·算法·机器学习·彩票
蚝油菜花1 小时前
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
人工智能·开源