Python 获取图像的轮廓面积和二值化图像的面积

在图像中:0是黑,255是白

获取图像的轮廓面积

参考链接

作者:喳 小铭
链接:https://www.zhihu.com/question/400665344/answer/1276806076
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

"""
矩
图像的矩可以帮助我们计算图像的质心,面积
cv2.moments()会将计算得到的矩以一个字典的形式返回。
"""
img = cv2.imread(dataPath + 'j.png', 0)
ret, thresh = cv2.threshold(img, 127, 255, 0)
contours, hierarchy = cv2.findContours(thresh, 1, 2)
cnt = contours[0]
M = cv2.moments(cnt)
print(M)  # {'m10': 16295.166666666666, 'm02': 2139434.833333333, 'nu20': 0.14816793811555762, 'm03': 153389761.15, 'nu12': 0.0006475903394347398, 'm01': 30024.833333333332, 'nu11': -0.06573717801941524, 'nu30': 0.01047213916167356, 'm21': 45301100.46666667, 'mu30': 38765.91563599929, 'mu02': 13277.718487945385, 'nu02': 0.07385701366114156, 'nu03': 0.0023967466246527977, 'm20': 652892.8333333333, 'mu03': 8872.311188548803, 'm11': 1142096.3333333333, 'm00': 424.0, 'm12': 80551411.9, 'mu12': 2397.259249293944, 'nu21': -0.006486127329685832, 'm30': 27178170.450000003, 'mu20': 26637.03924266249, 'mu21': -24010.439604086336, 'mu11': -11817.966915618395}
# 计算重心
cx = int(M['m10'] / M['m00'])
cy = int(M['m01'] / M['m00'])
"""
轮廓面积
cv2.contourArea(), 也可以使用矩 M['m00']
"""
area = cv2.contourArea(cnt)

获取白色像素点的面积

参考链接

import cv2
img = cv2.imread("01result1.bmp")############图片读取
pictue_size=img.shape
picture_height=pictue_size[0]
picture_width=pictue_size[1]
print(picture_height,picture_width)

i = 0
for a in range(picture_height):
    for b in range(picture_width):
        if img[a,b].all() > 0:
            i= i + 1
print(i)
  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三少的笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值