AI 分割掩码里有几个对象,怎样把像素面积与连通块统计出来
先确定蒙版前景阈值与4连通或8连通,再标记像素连通块并输出面积、包围盒和编号预览。连通块是像素集合,不是语义对象数量;两个物体碰在一起可能变成一块,一个物体也可能被裂缝切成多块。
输入必须是真正的标签含义
附件mask.png是16×12单通道合成蒙版,灰度至少128的像素视为前景。不要把带彩色标签、透明背景或抗锯齿的展示图直接套这个阈值,先确认颜色和通道编码。样例前景共有19个像素,独立计数可以先从原图核查;它没有提供像素到现实单位的比例,因此面积只能标area_px,不能叫作平方米。
对角接触会改变块数
4连通只检查上下左右,8连通再检查四个对角方向。本例两个3×3块之外有一个对角接触像素,4连通得到三块,8连通得到两块。代码分别遍历两种邻域,保留每块像素数和包围盒。两种结果并不互相否定,关键在于是否与应用定义一致;报告只写“检测出两个”却不说连通方式,会让复算者得到另一答案。
数表与叠加预览相互核对
components.csv按连通方式列每块面积与左上、右下边界,右下端点为不包含。component-overlay.png放大原蒙版并画8连通编号,帮助人工看到那一个对角像素归到了哪块。预览坐标缩放只是为了可读,计数仍来自原始像素,不能把预览放大后的像素量误当成原面积。面积相加应回到19,防止漏标或重复计数。
语义判断仍留给人工
失败边界明确拒绝把彩色预览当作单通道标签,提示先确认输入含义。噪点过滤、孔洞填充、腐蚀和膨胀都可能改变块数,需要另存处理参数与原蒙版,不能为得到期待数量随意调节。此包未调用分割模型,只统计原创合成蒙版;计数正确不代表模型边界准确。实际检查时,应结合源图确认是否有误分、漏分和相互接触,再决定连通块统计能回答哪一个业务问题。
比较两个版本蒙版时,保持阈值与连通方式一致,再看块数、总前景面积及每块位置。只报告总块数相同会漏掉一边新增、一边消失的情况;编号顺序也只是遍历结果,不应把第一个连通块当成跨版本稳定对象身份。
下载与复现
下载完整样例包,解压到一个新文件夹;也可查看全部文件清单和主脚本。使用Python 3.10或更新版本,在解压目录运行。依赖写在安装清单,建议在自己创建的虚拟环境安装。
python -m pip install -r requirements.txt
python -B run.py
python -B run.py --negative
先查看主要结果,再修改输入重跑;已有输入会保留,结果写回同目录。边界命令可能故意非零退出,也可能输出明确的不适用状态,按正文说明判断,不把所有非零退出都当成安装故障。
依据与延伸阅读
资料核对日期为2026年10月24日。一手资料1:连通标记的邻域结构影响区域数,连通块不等于语义对象。
相关参考2:Pillow可读取单通道像素并生成编号预览;现实面积比例需另给。
继续阅读:AI 抠图/去背景工具盘点:怎么按需选才不踩坑;OpenAI 局部改图的黑白选区怎样变成可用的透明蒙版;AI 生成的 PNG 图标尺寸一样却大小不一,怎样按透明边界统一视觉占位。
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。