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

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

相关推荐
乾元8 分钟前
构建你的个人「网络 AI 实验室」——硬件、模拟器与数据集清单
运维·网络·人工智能·网络协议·架构
lkbhua莱克瓦2411 分钟前
机器学习的演进与深度学习的革命
人工智能·深度学习·机器学习
楚来客13 分钟前
AI基础概念之九:神经网络单层感知机的基本原理
人工智能·神经网络·cnn
北京耐用通信14 分钟前
耐达讯自动化 Profibus 总线光纤中继器:解决半导体设备通信难题,提升产线效率
网络·人工智能·物联网·自动化·信息与通信
大强同学15 分钟前
7个优质精选Claude Skills
人工智能
GISer_Jing21 分钟前
AI学习资源总结:免费开放,入门至深入,持续更新
人工智能·学习·设计模式·prompt·aigc
聊聊科技24 分钟前
音乐平台批量demo更新频繁,AI代唱demo软件助音乐人快速响应
人工智能
IT_陈寒24 分钟前
SpringBoot 3.2实战:5个性能优化技巧让你的应用提速50%
前端·人工智能·后端
Ydwlcloud24 分钟前
个人博客与内容站部署在AWS:2026年的理性选择与更优策略
大数据·服务器·人工智能·云计算·aws
AAD5558889930 分钟前
黄稻螟害虫检测基于Faster-RCNN_R50-Caffe-C4_MS-1x_COCO模型创新实现
人工智能·深度学习·caffe