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

编程入门 行业动态 更新时间:2024-10-28 01:15:28

如何计算掩膜图中<a href=https://www.elefans.com/category/jswz/34/1771377.html style=多个封闭图形的面积"/>

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

import cv2def 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

更多推荐

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

本文发布于:2023-11-14 23:20:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1589523.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   图中   图形   面积   掩膜

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!