获取图像的面积
在图像中: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)