赞
踩
代码已开源:https://github.com/thisiszhou/polygon2mask (Python)
最近写实例分割代码时再次遇到了polygon转化为mask的需求,在二维平面中,快速得到多边形内部的全部点,看似简单。但是同时适配凸凹多边形的情况下,又追求一定的速度,还是有不少细节需要打磨,本文采用扫描线算法解决该问题。
上述代码是笔者第三次写扫描线算法,还是有不少卡壳的地方,在此记录一下该算法思路。如果并不关心算法实现细节,可以直接阅读算法功能与接口介绍。
测试后速率不如opencv内置函数快,opencv内置函数调用与速率对比参见算法速率测试。
入参:
输出:
0、1 mask矩阵,多边形内部点为1,否则为0(如图一右)
注:
扫描线采取水平方向与垂直方向,后续处理会有很大的不同,本文算法采用水平线。
如上图所示,使用一条水平线与多边形相交,若多边形为封闭多边形,则必有
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。