zhzhx 发表于 2022-11-14 11:34

小案例:利用python估算最外轮廓区域面积

一、需求:给出一张图片,估算最外轮廓区域面积


二、步骤:1、读取图片信息2、利用open-cv,自适应分割图片3、提取最外轮廓像素值4、利用像素值标记轮廓5、计算轮廓面积三、代码:
import cv2

# 读取图片信息
img_path = r"D:\Desktop\img\out1.png"

# 读取文件
mat_img = cv2.imread(img_path)
mat_img2 = cv2.imread(img_path, cv2.CV_8UC1)

# 自适应分割
dst = cv2.adaptiveThreshold(mat_img2, 210, cv2.BORDER_REPLICATE, cv2.THRESH_BINARY_INV, 3, 10)
# 提取轮廓
contours, heridency = cv2.findContours(dst, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 标记轮廓
cv2.drawContours(mat_img, contours, -1, (255, 0, 255), 3)

x_list = []
y_list = []
for c in contours:
    for i in c:
      x_list.append(i)
      y_list.append(i)

print(min(x_list), max(x_list))
print(min(y_list), max(y_list))

# 计算轮廓面积
area = 0
for i in contours:
    area += cv2.contourArea(i)
print(area)

# 图像show
cv2.imshow("window1", mat_img)
cv2.waitKey(0)
四、结果:

vethenc 发表于 2022-11-14 12:47

感谢分享,看上去挺有意思

kemuxin 发表于 2022-11-14 13:04

感谢分享

veryzhou 发表于 2022-11-14 13:16

类似于我们的一款卫星测地面积算法   后来被不再用在测地领域了   不知道为啥

duwanjiang 发表于 2022-11-14 13:34

感觉挺有意思的,学习学习

Yiii952 发表于 2022-11-14 14:01

有点意思,学习了
页: [1]
查看完整版本: 小案例:利用python估算最外轮廓区域面积