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

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

相关推荐
天辛大师2 分钟前
山东居士林:天辛大师用AI+预测城市田园农场运营调配
大数据·人工智能·随机森林·机器人·启发式算法
Yolanda949 分钟前
【人工智能】AI问答助手项目
人工智能·python
Java小白笔记9 分钟前
什么是 Token?2026 年主流大模型计费规则、价格与性能全面对比
人工智能·ai·ai编程·ai写作
盘古信息IMS14 分钟前
注塑工厂上MES系统,如何选对厂商实现数智化跃迁?
大数据·人工智能·物联网
自由的风.15 分钟前
【无标题】
人工智能·机器学习·自然语言处理
NineData21 分钟前
NineData 5.0 产品发布和生态伙伴大会,圆满举办!
运维·数据库·人工智能
羽师26 分钟前
Prompt 提示词中的 === 是干嘛
人工智能
薛定猫AI28 分钟前
【技术干货】AI Agent 自动化业务流程实战:从零构建智能营销系统
运维·人工智能·自动化
我叫张土豆29 分钟前
WebTransport:下一代Web实时通信的“终极协议“来了
人工智能·网络协议
Acland24094032 分钟前
基于 PyTorch + sklearn 的房价预测实战
人工智能·pytorch·sklearn