栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

除分水岭以外的图像分割方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

除分水岭以外的图像分割方法

您可以尝试使用已实现统计信息的连接组件

cv2.connectedComponentsWithStats
来执行组件标记。使用您的二进制图像作为输入,这是伪彩色图像:

每个对象的质心都可以在

centroid
参数中找到,其他信息(例如面积)可以在从
status
返回的变量中找到
cv2.connectedComponentsWithStats
。这是标有每个多边形面积的图像。您可以使用最小阈值区域进行过滤,以仅保留较大的多边形

import cv2import numpy as np# Load image, Gaussian blur, grayscale, Otsu's thresholdimage = cv2.imread('2.jpg')blur = cv2.GaussianBlur(image, (3,3), 0)gray = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]# Perform connected component labelingn_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(thresh, connectivity=4)# Create false color image and color background blackcolors = np.random.randint(0, 255, size=(n_labels, 3), dtype=np.uint8)colors[0] = [0, 0, 0]  # for cosmetic reason we want the background blackfalse_colors = colors[labels]# Label area of each polygonfalse_colors_area = false_colors.copy()for i, centroid in enumerate(centroids[1:], start=1):    area = stats[i, 4]    cv2.putText(false_colors_area, str(area), (int(centroid[0]), int(centroid[1])), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255,255,255), 1)cv2.imshow('thresh', thresh)cv2.imshow('false_colors', false_colors)cv2.imshow('false_colors_area', false_colors_area)cv2.waitKey()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号