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

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

相关推荐
一休哥助手4 分钟前
2026年2月2日人工智能早间新闻
人工智能
爱吃泡芙的小白白7 分钟前
CNN的FLOPs:从理论计算到实战避坑指南
人工智能·神经网络·cnn·flops
山居秋暝LS10 分钟前
Padim模型参数
人工智能·机器学习
藦卡机器人17 分钟前
国产分拣机器人品牌有哪一些做的比较好的推荐?
人工智能
GJGCY20 分钟前
2026主流智能体平台技术路线差异,各大平台稳定性与集成能力对比
人工智能·经验分享·ai·智能体
橙露27 分钟前
视觉检测中的数字光纤放大器的核心参数和调整
人工智能·计算机视觉·视觉检测
Rorsion32 分钟前
机器学习过程(从机器学习到深度学习)
人工智能·深度学习·机器学习
JicasdC123asd32 分钟前
【工业检测】基于YOLO13-C3k2-EIEM的铸造缺陷检测与分类系统_1
人工智能·算法·分类
咚咚王者33 分钟前
人工智能之核心技术 深度学习 第十章 模型部署基础
人工智能·深度学习
ydl112833 分钟前
深度学习优化器详解:指数加权平均EWA、动量梯度下降Momentum、均方根传递RMSprop、Adam 从原理到实操
人工智能·深度学习