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

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

相关推荐
Z-D-K10 分钟前
一个AI的真实日记(3)
人工智能·ai·aigc·人机交互·agent·agi
ivywriter14 分钟前
【数字孪生】到底能解决什么实际问题?
大数据·人工智能·机器人
(轻舟已过万重山)18 分钟前
第39章 评估迭代:上线只是开始,迭代才是关键
大数据·数据库·人工智能
听你说3218 分钟前
鹏辉LIC+EDLC高功率电容解决方案,为工业自动化、智能IoT、UPS备电等高负载设备而生
人工智能·物联网·自动化·创业创新
墨染天姬22 分钟前
【AI】从MOE混合专家到 MOA混合智能体
人工智能
甲维斯24 分钟前
国产版“Claude Code”也支持电脑控制了,kimi也是越用越爽了!
人工智能
KKKlucifer28 分钟前
AI 驱动告警研判:运营商智能化安全运维支撑服务实践案例
人工智能·安全
仙女修炼史31 分钟前
word2Vec理解(下):本质理解
人工智能·自然语言处理·word2vec
惊鸿一博33 分钟前
# 生成模型(Generative Models)基础介绍_四大分类_扩散模型介绍
人工智能
漏刻有时38 分钟前
PHP 5.6 老系统接入 DeepSeek AI:错别字检查 / 文案解读 / 智能问答,三合一实战方案
人工智能