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

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

相关推荐
jsl_jsl_jsl2 分钟前
《单机 Agent 应用的可观测性:刻意轻量的日志与调用链实现》
人工智能
G***技2 分钟前
告别物联网碎片化:杰和LH707+LM2-100-V0联合方案给出标准答案
人工智能·嵌入式硬件
szxinmai主板定制专家2 分钟前
【工控实战】RK3568/RK3588 8路隔离CAN/CANFD完整解决方案|多路总线并行通信、车载/工控量产落地
人工智能·fpga开发·zynq·mpsoc·半导体设备
刘马想放假4 分钟前
RK3588 使用 rk-llama.cpp + RKNPU2 部署 Qwen3.5:从零开始的 NPU 本地大模型实战
人工智能·开源·llm
商业看点解说11 分钟前
哪些 AI 创业公司和生成式 AI 产品适合使用 Amazon Bedrock?
人工智能
智驭未来掌门人13 分钟前
大模型网关集成 MCP 与 CLI 的调用指南(自动分配密钥工具)
人工智能
snakeshe101013 分钟前
AI 应用开发Day4(下):Embedding——从关键词匹配走向语义检索
人工智能
秦先生在广东17 分钟前
Tencent BrowserSkill:让 AI Agent 无缝接入真实浏览器会话
人工智能
Allen正心正念202529 分钟前
Agent框架—LangGraph智能体框架设计要点和踩坑预防指南
人工智能
高升说34 分钟前
无人机机载视觉避障硬件链路拆解:从成像到制动的五层设计
人工智能